Skip to main content

Full text of "CPC Magazine (French) Issue 036"

See other formats


00360 















































RUCS ET ASTUCES 


IDOUILLE 


CTU ALITE 


OURRIER DES 
LECTEURS 


ITES-VOUS BONNE 
IMPRESSION ? 


ANCS D’ESSAI JEUX 


KENUMEROTATION 
DES PROGRAMMES 
BINAIRES 


RAITEMENT DE 
L’IMAGE 


EDOR 


ANDEROLE 


CCELERATEUR 


OMPILATION 


Satellite 


ERCULE II 


MSLETTRES 


E MESSIE 


I 


I 


I 

I 


I 


ar 

i 


CPC n'^ 36 ‘ Juillet/Août 1988 


3 













■Qj R UCS ET AST UCES 


■ Pierre TACONNET m 


TURBO-CLAVIER AZERTY 

Turbo-Clavier est un de ces programmes oui ne tournent pas 
sur les CPC munis d'un clavier AZERTY. Une petite adapta¬ 
tion est nécessaire. Patrick Peulmeulle, de Carnin, nous pro¬ 
pose cette adaptation fumante I 
Modifiez les lignes suivantes : 

310 KEY DEF 67J,97,65J43:KEY 143, "auto" 

390 KEY DEF 29,1,109,77,150:KEY 150, "mode" 
et créez cette ligne : 

391 KEY DEF 69,1,113,81,151:KEY 151, "data" 

Pour l'utilisation "auto", actionnez CTRL A 

Pour l'utilisation "data", actionnez CTRL Q 

Pour l'utilisation "mode", actionnez CTRL M 

Enfin, pour récupérer la virgule, faites la même chose avec 

les lignes 580, 660 et 661. Vous aurez remarqué que seule 

la première donnée est à modifier, c'est-à-dire le numéro de 

la touche. 


NOUVEAU MODE, MEME ECRAN 


Savez-vous qu'il est possible de changer de mode en con¬ 
servant l'écran intact ? Voici le truc de Michel P^ost, 
d'Auberive. 

La formule : CALL &bc06,&40:MODE x:CALL &bc06,&c0. 
Où X représente la valeur du nouveau mode. 

Pour une oage écran réalisée en mode 1 : 

10 INPUT "Nom de la page";nom$ 

20 MODE 2 

30 LOAD nom$:CALL &bb18 

40 CALL &bc06,&40:MODE 1:CALL &bc06,&c0: 

CALL &bb18 

Dans ce cas, l'espace &4000 à &8000 est détruit. 


BIZARRERIES APPARENTES 


FOR N = 0 TO &7fff Bon 
FOR N=0 TO &8000 Mauvais 
FOR N = 0 TO 32768 Bon 
FOR N = &7fff TO &ffff Mauvais 
FOR N = &7fff TO 65535 Bon 
FOR N = &8000 TO &ffff Bon 
FOR N = 0 TO &ffff Mauvais 

Etant donné que PRINT HEX$(65535) donne &ffff mais que 
PRINT &ffff donne -1, qu'en pensez-vous ? 


ECRITURE RAPIDE (suite) 


Dans CPC N®34 se trouvait une routine de Alain Tauber accé¬ 
lérant notablement l'exécution de l'instruction PRINT. Voici 
un complément de la part de Frédéric Bellec, de Moulins. 
Le programme de démonstration ayant, pour une raison obs¬ 
cure disparu de la liste (notez au passage que les caractères 
manquants avant IMPR$ sont des arobas - -), vous êtes invité 
à utiliser en lieu et place : 

Il est important de faire un CALL calcul, adresse, routine plu¬ 
tôt qu'un CALL variable où variable aurait été auparavant 
initialisé avec l'adresse de début de la routine. En effet, cette 
routine étant contenue dans une chaîne, puisque relogeable, 
elle peut circuler en mémoire, l'adresse de début s'en trau- 
vant modifiée I Malgré cela, rien n'empêche d'utiliser des 
GOSUB routine pour éviter l'écriture des PEEK ( IMPR$ etc. 
Ce qui donne : 


3 


Pour 664 et 6128, les codes c8 et b 1 en ligne 30 doivent être 
remplacés respectivement par c3 et b/ afin de préciser 
l'adresse contenant le mode d'écran en cours d'utilisation 
(&b7c3) pour disquette, &blc8 pour cassette). Mais les 
1 OOème et lOlème codes en ligne 70, fc et 9e, représentent 
l'adresse de début de la matrice de caractères, en supposant 
ue le CPC fasse un SYMBOL AFTER 0. Simple commodité 
e calcul I Cette adresse est facile à calculer. Prenons le cas 
du 6128. Au départ, HIMEM = 42619. Mais comme à l'ini¬ 
tialisation le système simule un SYMBOL AFTER 240, 
l'adresse de départ de la matrice de caractères (rappelons 
tout de même que l'on suppose que l'on parte du CHI<$(0)), 
est égale à (HIMEM-1), qui est l'adresse de début matrice 
du CHR$ (240), moins (25o-16)*8 où 256 est le nombre total 
de caractères, 16 est le nombre de caractères déjà réservés 
et 8 le nombre d'octets d'un caractère. 

Cela signifie donc que pour un 464 sans lecteur de disquette 
dont le HIMEM est positionné à 43903 au départ, les deux 
codes hexadécimaux en lieu et place de fc &9e seront : 
(43903 + 1 ) - (256-16) * 8 soit 41984 soit encore &a400 ce 

? ui nous donne les codes 00 &a4. 

out ceci n'est valable que si aucun fichier binaire n'est chargé 
c'est-à-dire si le HIMEM n'a pas été rabaissé par MEMORY. 
Voyons tout de même la solution dans ce cas. 

Prenons l'exemple d'un fichier "TRUC.BIN" dont on suppose 
qu'il commence en 36864 (&9000). On évitera de faire un 
MEMORY 36863 (&8fff) car les 16 derniers caractères (240 
à 255) seraient perdus. Alors, on abaissera ce HIMEM de 
16*8 ce qui entraînera HIMEM = 36863 - (16*8) soit 36735 
(&8f7f). Nous trouverons donc en début de programme les 
lignes suivantes : 


La ligne 40 nous permet de réserver de la place pour les 
caractères et ainsi de rabaisser la mémoire à 3^4943 (&887f) 
qui correspond à HIMEM. 

Si, par exemple, la mémoire est libre à partir de 42000, rien 
ne vous empêche de placer la routine TURBOPRINT de 
42000 à 42149 et de "poker" l'adresse dont nous parlions 
au début en 42099 et 42100. 

Splendide, non ? Magnifique démonstration I 


5"1/4 MAITRE 

Encore ? Oui, encore I Et pour la simple et bonne raison que 
voilà une façon de rendre maître un 5" 1 14 sans modifier votre 
CPC. En outre, cela peut être considéré comme un inconvé¬ 
nient, mais aussi comme un avantage, cette opération décon¬ 
necte le lecteur 3" 1/2 de série. 

Il suffit de se munir d'un peu de fil, et d'un interrupteur à deux 
positions (pas de poussoir I). 

Vous soucierez le fil, comme indiqué sur la figure, sur la piste 
Drive Select 1 vers le 5 volts via l'inter. La piste Drive Select 
est la piste 12 et correspond à la piste 23 du connecteur môle 
situé à l'arrière du CPC. 

En position ouvert, utilisation des deux lecteurs, le 3" 1/2 étant 
A: et maître. En position fermé, utilisation du 5" 1/4 en lec¬ 
teur A : et déconnexion du 3" 1/2. 

Raymond Ligozat, de Sisteron, a réalisé cette "bidouille" 
avec un 5" 1/4 Toshiba double face. 


nmmmmm 



• 5 vo/ts 
•> 


4 


CPC n°36- Juillet/Août 1988 














* MICROIDS 

Le CES de Chicago a été l'occasion de 
remises de récompenses (des Awards 
comme ils disent aux States). Vaus savez 
déjà que Microïds et Broclerbund Soft¬ 
ware se sont associés pour la distribution 
des produits de la compagnie française 
aux Etats-Unis. 

C'est à Superbike Challenge (Grand Prix 
500cc, ici-bas), vendu à 40 000 exem¬ 
plaires outre-Atlantique que l'Award a 
été décerné pour la mention produit 
innovant de l'année 88. Non content de 
cela, Microïds présentait "Dowhill Chal¬ 
lenge" (ou Super Ski sous nos latitudes) 
en exclusivité au CES. Peut-être un futur 
hit ? 

En Angleterre, c'est Super Ski spécial 
Eddie Edwards. Si le nom vous est 
inconnu, sachez qu'il s'agit d'un skieur 
britannique oui s'est distingué aux [ 
olympiques d'hiver de Cafgary en 
tant le record de saut à ski anglais. 


jeux 
I bat- 




—Jfè 


* LORICIELS 


* INFOGRAMES 


Ne reste pas inactif durant les vacances 
d'été afin de vous proposer dès la,ren¬ 
trée de nouveaux (eux avec quelques 
surprises. En attendant, sont annoncés 
Mata-Hari, un jeu d'arcade/aventure 
ayant pour cadre la Première Guerre 
mondiale et le monde de l'espionnage. 
Ensuite, une suite : COBRA II. Le héros 
japonais est de retour avec de nouveaux 
décors et de nouveaux personnages... 
De plus, l'émission du mercredi "on va 
gagner" sur FR3 utilise Mach 3 pour 
support ludique. Ce dernier succède ainsi 
à Space Racer pendant tout l'été et en 
direct du Futuroscope de Poitiers. 


Qui va distribuer les logiciels PSS en France ? Devinez ? Infogrames, bien sûr I Les 
logiciels concernés sont : Bataille pour RFA, un wargame futuriste ayant pour cadre 
l'Europe et mettant en jeu l'OTAN et le Pacte de Varsovie. Pegasus Bridge se déroule 
dans le passé, le 5 juin 1944 (la veille du débarquement sur les côtes françaises). 
Le joueur peut se placer dans la peau de l'un des adversaires et affronter aussi l'or¬ 
dinateur. Enfin, Sorcerer Lord vous interpelle quelque part au niveau des aventu¬ 
res, épiques comprenant un seigneur des ténèbres avec quelques pouvoirs magiques 
en prime. 

Bob Morane strikes back, un petit plongeon dans le Grand Bleu pour le héros d'Henri 
Vernes. Sept parties composent la saga : un combat à scooter, une poursuite en 
bathyscaphe, une traversée de champs de mines, un repérage des ennemis sur la 
carte, combat cantre les affreux, etc. Comme toujours, le logiciel est livré avec un 
roman "Opération Atlantide", une B.D. "Ecume de sang", un guide traitant des 
techniques de plongée et un jeu de rôle. Tout cela pour 199 F sur disque CPC ou 
149 F sur K7. 


CPC n° 36- Juillet/A oût 1988 


5 










• SLORA SARL 

Kontact Gold 2000 est un lubrifiant pro¬ 
tecteur conditionné en bombe aérosol. 
Son rôle est de faciliter le glissement des 
métaux constituant les connecteurs. Donc 
moins d'usure mécanique et une durée de 
vie prolongée des composants coûteux. 
Ce produit est tout particulièrement 
recommandé pour les métaux suivants : 
or, argent, zinc, rhodium, palladium, 
etc. 

Pour tous renseignements, contacter : 
SLORA SARL 
BP 91 

57602 FORBACH 




• HEWSON 

Nous avons déjà annoncé Battlecar 
Marauder ; en voici une photo. Rappe¬ 
lons qu'il s'agit d'une 'bataille'' sur 
route ayant pour héros un pilote de véhi¬ 


cule blindé et très bien armé. Vous 
devriez vous faire des sensations dès le 
28 juin, date de sortie de ce logiciel 
d'arcade. 



DUC»'*"* 

amstrao 

CPC 


• NATHAN 


L'opération Nathan-vacances propose à 
tout acheteur de 2 logiciels éducatifs, un 
cahier de vacances gratuit. Dans la 
qamme CPC, vous trouverez 8 logiciels 
J'apprends à écrire, à lire...). 

.a gamme PC comprend également 8 
ogiciels sur 5" 1/4 et 3" l/2. Les com¬ 


patibles PC ont maintenant leurs logiciels 
de français traitant les programmes du 
CP au CM2. Dans chaque volume, vous 
trouverez 50 exercices plus 2 récréa¬ 
tions. Chaque disquette de la série de 4 
sera vendue au prix de 245 F sur 5" 1 /4 
et 3" 1/2. 


6 


CPC n^Sô- Juillet/Août 1988 










































































































































• MICROMANIA 


• GREMLIN 

Après s'être battu pour obtenir les droits du personnage (la réputation de Walt Dis¬ 
ney dans ce domaine est bien établie), Gremlin annonce un logiciel de jeu ayant pour 
héros la célèbre souris Mickey. Les fans de Disney Channel auront leur souris dès 
le 4 juillet. Bon appétit I 


Un nouveau service sur le 36.15 vient 
d'apparaître : il s'agit du serveur Micro- 
mania. Celui-ci contient 800 descriptions 
de logiciels, un hit-parade. Les passion¬ 
nés de Pokes et de vies infinies trouve¬ 
ront une rubrique digne d'intérêt (bien 
que les solutions proposées aient un air 
de déjà-vu I). 

Puisque M. Micromania est content, il 
offre 10 logiciels par jour en juillet et en 
août aux personnes qui répondront cor¬ 
rectement à un questionnaire concernant 
l'informatique ludique. 


• EMR 

Ce sigle étrange signifie Electro Music Research. Autant dire que cette société est spécialisée dans la musique et son application 
informatique par l'intermédiaire de la norme MIDI. Les logiciels et connecteurs MIDI étaient déjà disponibles sur CrC, voici 
qu'arrive le logiciel musical dédié au PCW (depuis le temps que l'on vous dit qu'il est possible de faire autre chose que du 
traitement de texte). Alors, intéressés ? Il faut écrire en Angleterre à l'adresse suivante : 

EMR 

14, Mount Close 
Wickford, Essex SS11 8HG 
U.K. 


CPC n° 36- Juillet/Août 1988 


7 





















SAARI 


Scan 


En composant le 36.16 puis le code 
SAARI, vous accéderez au serveur de la 
société. Vous y trouverez une présenta¬ 
tion de la société et des produits, une 
actualité et surtout un télé-diagnostic. Ce 


dernier permet aux possesseurs de logi¬ 
ciels SAARI, une recherche dans une 
banque de données afin de trouver la 
solution à leur problème logiciel. 


lPser 


• PALACE 

C'est pas possible I Ils ont osé I La pulpeuse créature qui orne la couverture de Bar- 
barian est de retour. Les fans de Russ Meyer vont pouvoir s'en donner à cœur joie 
puisqu'il est possible dans "Barbarian II'' de se glisser dans la peau de l'héroïne. 
De plus, il y aura de nombreux tableaux, des monstres et autres amuse-gueules. 
Quand je pense qu'il faudra attendre le mois d'août. 


• EDIMICRO 

J'ai la mémoire qui flanche. Au lieu de 
vous bourrer de Pharmaton, essayez 
plutôt les micro-mémentos : ce sont de 
petits ouvrages concernant les logiciels 
très courants sur compatibles IBM. 

La première série concerne SPRINT - 
VP - PLANNER - WORD 3 & 4. Sont 
bientôt annoncés : dBASE, FRAME¬ 
WORK, LOTUS 1, 2, 3 et QUATTRO. 
Le prix de chaque volume est de 59 F. 


M.Djama 


if* Edimicro 


8 


CPC n° 36- Juillet/Août 1988 



























f 


:■ 


• AVTEL SARL 


CPSERV 



Un kif serveur pour CPC, cela vous 
tente ? Voici donc CPServ qui comprend 
un boîtier de liaison, une série d'instruc¬ 
tions supplémentaires afin de gérer les 
opérations de télécommunication, un 
micro serveur tout prêt et un composeur 
vidéotex pour les graphismes. 

Si vous êtes tentés, allez-donc voir au 
66.76.07.26., le serveur est disponible 
en permanence. 

Prix du kit : 550 F. 

S'adresser à : 

AVTEL SARL 
9 bis, rue des Moulins 
30000 NIMES 


• MINDSCAPE 

Trois jeux futuristes et sophistiqués sont 
proposés par la société américaine. 
Captain Blood ne vous est pas inconnu, 
mais la version PC risque d'être 
surprenante. 

Colony, également sur PC, utilise le 3D 
avec traitement des faces cachées, numé¬ 
risation sonore. Il s'agit d'un logiciel 
mêlant l'arcade et l'aventure dans lequel 


vous êtes un représentant de l'ordre, 
explorant une colonie envahie par des 
extraterrestres. 

Visions of Aftermath : the Boomtown 
présente une vision apocalyptiaue de 
l'après-guerre nucléaire. Il faudra 
apprendre à survivre dans cet environ¬ 
nement hostile. Bonne chance I 



• GRANDSLAM 

The Flinstones, cela vous dit quelque chose ? Les Pierrafeu ? Bien sûr, il s'aait de 
cette famille préhistorique aux multiples soucis. Vous retrouverez donc Wilma,'rred, 
Pebbles, Bonney et les autres sur.une disquette. Il s'agit en fait d'une série d'épreu¬ 
ves qui doit mener le père de la famille jusqu'au terrain de bowling. 


KONTAKT 
OR 2000 


POUR CONTACTS ET 
CONNEXIONS PLAQUEES 
OR OU METAL NOBLE 



Kontakt OR 2000 facilite le glissement et réduit 
les frictions gui, à la longue, peuvent rayer les 
couches rapportées, avec pour conséquence un 
effeuillage des couches très fines et une mise à 
nu du métal de base favorisant la corrosion en 
ambiance saline ou agressive. 

Les tests auxquels a été soumis ce produit sont 
particulièrement explicites et prouvent que l’uti¬ 
lisation de KONTAKT OR contribue largement à 
allonger la vie de composants d'un coût élevé et 
dont les garanties des fabricants sont géné¬ 
ralement limitées â 500 branchements. 


BON POUR UNE NOTICE TECHNIQUE 
GRATUITE A RETOURNER A 

SLORA 

BP91 -57602FORBACH 
EN Y JOIGNANT VOTRE 
CARTE DE VISITE. 


CPC n° 36- Juillet/Août 1988 


9 




























FAITES-VOUS 
BONNE 
IMPRESSION ? 

Michel ARCHAMBAULT 


Autant dire que nous 
allons encore parler du 
bon usage de 
l’imprimante... Non 
seulement apprendre à la 
“switcher” correctement, 
mais surtout prévoir pour 
elle des applications 
utilitaires. A titre 
d’exemple, nous verrons 
comment programmer 
une lettre type avec 
“mailing” et sans logiciel 
de traitement de textes ! 

Les PREREGLAGES DE 
L'IMPRIMANTE 

eaucoup de lecteurs utilisent leur 
imprimante avec les mêmes ré- 
glages que lars de son débal¬ 
lage. D'autres, plus courageux se sont 
plongés dans le manuel pour mieux 
régler ces sacrés "switches'' (microcom¬ 
mutateurs) mais avec de nomoreux dou¬ 
tes sur leur action car les manuels d'im¬ 
primantes ne brillent pas par leur 
clarté... La preuve, près de 40 % du 
courrier des lecteurs qui m'est adressé est 
relatif à des problèmes d'impression I 
Première loi, la plus importante : les swit¬ 
ches servent à fixer des options par 
défaut lors de la MISE SOUS TEN¬ 
SION. Donc un switch basculé sous ten¬ 
sion est sans effet. Il faut éteindre et 
rallumer pour que ce changement 
devienne actif. OK ? 


Deuxième loi : un fabricant d'impriman¬ 
tes veut que ses machines puissent fonc¬ 
tionner parfaitement sur tous les micro¬ 
ordinateurs. Or, ceux-ci sont tellement 
différents qu'il n'existe pas de réglage 
passe-partout. Il a dû en choisir un pour 
la sortie d'usine et huit fois sur dix, c'est 
le réglage pour liaison à un compatible 
IMB PC, pas pour CPC... (heureusement, 
ils diffèrent peu I). 

Troisième loi : il faut noter, sur une feuille 
fixée dans le manuel, les positions des 
switches AVANT ET APRES modifica¬ 
tions. 

Il serait trop facile de vous indiquer sans 
explications les options à prendre pour 
liaison à un CPC. Il faut absolument con¬ 
naître les raisons de ces choix car un jour 
vous tomberez fatalement sur un cas par¬ 
ticulier. 

Le choix de NATIONALITE 
DES CARACTERES 

Six codes ASCII ont des représentations 
différentes selon cette "nationalité". Il 
s'agit de lettres spécifiques à certaines 
langues. Pour la France, ce sont les 
minuscules accentuées, le siqne 
"numéro" (®) et le signe "paragraphe" 
(§). Un exemple ; si T'imprimante reçoit 
le code ASCII 64 et qu'elle est switchée 
USA, elle fera un " " ; si elle est swit¬ 
chée France, elle fera un "à". Idem pour 
le code 124 qui sera traduit par la barre 
verticale ou par "ù". 

Premier cas de conscience ; vous avez un 
clavier QWERTY et vous vous consacrez 
surtout à la programmation, alors swit- 
chez USA pour que ces symboles usuels 
soient traduits de même sur papier. Vous 
avez un clavier AZERTY et vous trouvez 
normal que ces caractères soient identi¬ 
ques à l'écran et sur papier, alors swit- 


chez français. QWERTY ou AZERTY 
vous voulez que les minuscules accen¬ 
tuées à, é, è, ù, ç soient imprimées cor¬ 
rectement. Dilemme... 

Voici la solution que j'utilise : mon impri¬ 
mante est switchée USA (car je fais sur¬ 
tout de la programmation), mais quand 
je veux imprimer ces lettres avec accents, 
j'envoie tout d'abord le code EPSON 
qui va instaurer le clavier français. 
PRINT#8, CHR$(27);"R";CHR$(1); 
Quatrième loi : lorsqu'une commande 
par code EPSON est en contradiction 
avec le "switchage", c'est le code 
EPSON qui prime. 

Inversement, si la machine est switchée 
France et que vous vouliez imprimer un 
listing, envoyez d'abord ce même code 
EPSON mais en remplaçant CHR$(1) 
par CHR$(0) et vous serez en caractè¬ 
res USA. A vous de choisir. 

Nota : si vous utilisez aussi un compati¬ 
ble PC même avec clavier AZERTY, swit¬ 
chage USA obligatoire. (Les minuscules 
françaises ont d'autres codes ASCII). 

Choix des codes et polices 

Vous savez que les consignes pour 
imprimer du texte se font par des codes 
de commandes appelés communément 
"CODES EPSON" ; or, ils ne sont pas 
les seuls, il existe aussi les "CODES 
IBM" souvent très différents des codes 
EPSON. Ces codes IBM (une marque qui 
ne veut jamais faire comme tout le 
monde I) sont très peu utilisés. Donc pas 
d'hésitation, choisissez "codes EPSON" 
c'est le standard qui s'est imposé. 

Un autre switch peut vous proposer "ita¬ 
lique ou IBM" ou encore "normal au 
graphique". Ceci ne concerne (hélas) 
pas les AMSTRAD CPC puisque leurs 
sorties imprimantes ne sortent que 7 bits 


12 


CPC n° 36- Juillet/Août 1988 





au lieu de 8. Autrement dit, un CPC ne 
peut envoyer à l'imprimante que des 
codes ASCII compris entre 0 et 1 27. Or 
ce choix concerne les caractères de codes 
compris entre 128 et 255. 

Dans la norme ASCII, ce sont nos mêmes 
caractères mais écrits en italiques. Cela 
a peu d'intérêt car un CPC peut faire 
imprimer en italiques grâce au code 
EPSON ESC "4" (traduit par 
PRINT#8, CHR$(27);"4"). IBM pour 
ses PC en a profité pour les remplacer 
par autant de symboles graphiques très 
utiles parmi lesquels on trouve nos minus¬ 
cules accentuées. Il y a même deux jeux 
de caractères (peu différents) appelés 
"Table I et table H". Je vous parle de 
ces choses qui ne nous concernent pas 
parce qu'il s'agit de choix proposés cians 
le manuel. Donc pour CPC, switchez 
"italiques" et ce pour éviter des ennuis 
avec l'une des tables IBM... 

Revenons aux codes EPSON : quelques 
lecteurs se plaignent que certains codes 
ne fonctionnent pas (ou d'une manière 
inattendue) sur leur imprimante. Trois 
raisons à cela. 

• Votre imprimante bas de gamme a une / 

ROM moins riche qui ignore ce code/ 
"élaboré" présent sur les modèles haut! 
de gamme ou très récents ; | 

• Votre imprimante est d'une marque oui 
d'un modèle qui ne respecte guère la 
norme EPSON. Et je vise là certains 
modèles TANDY et l'AMSTRAD DMPl ; 

• Cas plus rare : certains codes EPSON 
sont mal normalisés et changent d'effet 
d'un modèle à l'autre (même dans la 
marque EPSON I). Le cas maudit est le\ 
ESC " I" qui sert justement à changer la 
taille des caractères. A ne jamais utili¬ 
ser ! 

REGLAGE DIVERS 

Zéro barré ou non. Le zéro non 
barré a une forme légèrement plus car¬ 
rée que le O majuscule. Optez pour le 
zéro barré et en traitement de texte, 
tapez des O majuscules pour zéro. 
Attention, il n'existe pas de code 
EPSON pour cette option ; c'est unique¬ 
ment par switch. 

LF (automatic line Feed) = saut de ligne 
automatique. Mettre sur OFF. Explica¬ 
tion : quand vous programmez 
PRINT#8, AS après ce A$, le CPC 
envoie à votre insu un CHR$(13) qui fait 
revenir la tète à gauche, plus un 
CHRSIIO) qui fait avancer le papier 
d'une ligne. Quelques très rares ordina¬ 
teurs n'envoient pas ce CH R$( 10) et c'est 
à l'imprimante de le faire suite à un 
CHR$(13). Si vous le mettiez sur ON, 
vous auriez donc un double interligne. 

Les sauts de pages. Plusieurs régla¬ 
ges correspondent à cela. Tout d'abord, 
la longueur des feuilles utilisées, 1 1 ou 
2 pouces (= 27,94 cm ou 30,48 cm). 


Le 11" est plus fréquent. Les feuilles 
séparées correspondent à 11 " et 1/2 
donc une autre raison de choisir 1 1". 

- SKIP OVER effectue un saut de 1 pouce 
en bas de page, ce oui évitera d'écrire 
sur la pliure en pointillés. En général, on 
le met sur OFF. 

- PAPER END DETECTOR : arrêt de 
l'imprimante si panne de papier. ON car 
c'est une sage précaution, mais à met¬ 
tre sur OFF pour imprimer une feuille 
séparée ou des enveloppes. 

- "Papier continu ou en feuille à feuille". 
En "feuille à feuille" le SKIP OVER se 
met sur ON et PAPER END sur OFF, et 
ce automatiquement, du moins généra¬ 
lement... Cette position est recommandée 
même si vous n'avez pas de bac d'ali¬ 
mentation automatique et que vous posi¬ 
tionnez vos feuilles une à une. 

SLCT-IN Une option ayant tendance à 
disparaître. A mettre sur ON. En OFF, 
le micro pourra bloquer l'imprimante en 
mettant la broche 36 de la prise à -i-5 
volts. Utilité ? 

INPUT BUFFER. Votre machine pos¬ 
sède peut-être une RAM (buffer) de plu¬ 
sieurs kilo-octets dans laquelle elle stocke 
les caractères à imprimer ? Grâce à elle, 
le CPC "reprendra la main" avant la fin 
de l'impression. Donc à mettre sur ON. 
Toutefois, pour la mise au point de pro¬ 
grammes d'éditions, ce buffer est 
gênant : en OFF, l'imprimante s'arrêtera 
quand vous presserez la touche ESC du 
CPC. 

En conclusion, vous voyez que de nom¬ 
breux switches dépenclent de vos goûts 
personnels ou de circonstances excep¬ 
tionnelles. Il est donc indispensable de 
connaître le rôle de chacun d'eux. 

Nota : même avec le LF sur OFF, il 
arrive que l'on ait le double interligne, 
c'est spécifique aux Amstrad CPC équi¬ 
pés de certains câbles : il faut empêcher 
que la borne de sortie n° 14 côté CPC 
soit reliée électriquement à la borne 14 
côté imprimante. Si c'est le cas, coupez 
cette liaison dangereuse (dans une des 
prises du câble). 

A présent, nous pouvons faire les pro¬ 
grammes d'éditions. 


Les REGLES GENERALES 
DE PROGRAMMATION 

1 - Tout programme (ou sous- 
programme) d'édition doit commencer 
par ESC " " qui vide le buffer de con¬ 

signe. Ce code a également pour effet 
de mémoriser la ligne 1 du papier (pour 
les sauts de pages). Il faut donc que le 
apier soit correctement positionné en 
aut de page AVANT de lancer le pro¬ 
gramme ! 


2 - Tout programme doit s'achever par 

ce même ESC " ". Imaginez que la 

dernière ligne ait été imprimée en gros 
caractères et qu'après cela, vous fassiez 
LIST # 8 ... Joli gag, n'est-ce pas ? 

3 - Les codes EPSON peuvent être pro¬ 
grammés à la file, séparés par des 

Il faut un point-virgule à la suite d'un 
code isolé sinon il y aura en plus un saut 
d'une ligne... 

4 - Pour laisser des lignes blanches, pro¬ 
grammer des PRINT/t8. Exemple : 

FOR N = 1 TO 4 : PRINT#8 ; NEXT 

5- Pour effectuer un saut de page pré¬ 
maturé, faire : PRINT#8, CFiR$(12) ; 
faire également un CHR$(12) ; en final. 
Ce code ne fait pas avancer le papier 
d'une page mais du complément de 
lignes pour amener le papier sur le 
haut d'une nouvelle page (très impor¬ 
tant I). 

6 Pour les tabulations horizontales, uti¬ 
lisez TAB (comme avec PRINT) ou SPC 
ou SPACE$. 

PRINT #8,A$;TAB(20);B$;TAB(65);E$ 

PRINT#8,SPC(38);C$ 

PRINT#8,SPACE$(52);D$ 

Ne pas utiliser les codes EPSON spé¬ 
ciaux tels que ESC "D" qui sont très déli¬ 
cats d'emploi, donc assez farceurs. Idem 
pour les tabulations verticales (comptez 
les PRINT«8). 

7 - Si vous utilisez du papier de largeur 
normale sur une imprimante "grand cha¬ 
riot", il faut obligatoirement program¬ 
mer WIDTH 80 (c'est une commande 
BASIC CPC), sinon la tête poursuivra 
l'impression de sa ligne sur le rouleau 
caoutchouc... Ce sera WIDTH 96 pour 
des caractères "Elite" et WIDTH 132 
pour du "condensé". 

8 - L'écriture en "espacement propor¬ 
tionnel" par ESC "p" fait certes plus 
"chic" mais est à proscrire des 
tableaux ; sinon adieu les belles tabu¬ 
lations ! 

9 - Si votre CPC a un clavier QWERTY, 
il vous faut connaître les touches corres¬ 
pondant aux minuscules accentuées : 

à = ; é = SHIFT + crochet ouvert ; 

è = SHIFT + crochet fermé ; ç = anti- 
slash ; ù = barre verticale ; ° - crochet 
ouvert et § = crochet fermé. 

Les lettres é et è se traduisent à l'écran 
por des petites accolades. 

Pour obtenir ces symboles sur les écrans 
des CPC QWERTY, lancez un sous- 
programme à base de SYMBOL : voir 
du même auteur : "Programmes utilitai¬ 
res pour AMSTRAD" page 20 (SORA- 
COM). 


CPC n°36- Juillet/Août 1988 


13 





Une application 

PRATIQUE 

Notre listing exemple est une lettre type 
qu'une entreprise envoie à tous ses 
clients pour un nouvel article OBJ$. 
Seules deux données sont à entrer ou 
clavier, la dote DAT$ et le nom de cet 
OBJS. Pour le reste, le programme 
charge le fichier adresses cies clients et 
édite une lettre PERSONNALISEE pour 
chacun d'entre eux. C'est ce qu'en trai¬ 
tement de textes on appelle "MAILING" 
ou "PUBLIPOSTAGE". 

Bien sûr, le nom et l'adresse sont impri¬ 
més au bon endroit pour les enveloppes 
à fenêtres, mais plus loin le nom de la 
personne et sa ville sont mêlés au texte, 
ce qui fait "personnalisé". 

Ce programme étant une démo, nous 
avons remplacé la lecture du fichier 
clients (par OPENIN) par deux lignes de 
DATA figurant les "champs" de deux 
clients. 

Le texte de cette lettre type est pro¬ 
grammé par des lignes de DATA, que 
vous devrez bien sûr changer pour votre 
application personnelle. 

Et maintenant, expliquons certains 
détails de ce mini programme. 

Les details de la 

PROGRAMMATION 

1050 - On demande de vérifier que le 
papier est bien positionné et l'impri¬ 
mante prête, puis de presser ENTER. 
Cette précaution, ce répit, sont obligatoi¬ 
res. 

2010 à 2030 - On envoie les codes 
EPSON nécessaires : initialisation 
d'abord puis clavier français et qualité 
courrier (NLQ) même si votre imprimante 
est déjà switchée ainsi = confirmation 
sans risques. 

3000 à 4080 - Ce module appelé 
par le GOSUB de la ligne 200 va met¬ 
tre en RAM toutes les variables dont 
nous avons besoin. A savoir les lignes de 
texte, DIM L$, des codes EPSON rebap¬ 
tisés "en clair" (lignes 3210 et 3220) ; 
remarquez dans ces lignes le signe + 
pour concaténer les divers éléments. Et 
enfin, le fichier clients mis en DIM F$. NF 
est le nombre de fiches-clients (lignes 
4000 à 4070). 

2040. Ce FOR N = 1 TO NF:GO- 
SUB 5000 va faire imprimer NF lettres 
personnalisées. 

2050- Fin du programme, un init final 

f )our vider le buffer de consignes de 
'imprimante. 

Donc le "gros morceau" c'est ce module 
5000 que nous allons étudier plus en 
détail. 


Le module ^aEHRE" 

(Ligne 5000 - 5910) 

Nous n'avons pas imprimé l'expéditeur, 
on suppose qu'il s'agit de papier à en¬ 
tête. Pourquoi commence-t-on par un 
PRINT#8 î (5010). C'est une sage pré¬ 
caution car la première inscription est 
forcément tabulée (la date); et l'on ris¬ 
querait d'avoir des surprises sur la posi¬ 
tion de celle-ci. 

En effet, la lettre n® 1 a d'abord reçu des 
codes EPSON suivis de point-virgule ; 
les lettres suivantes prendront la suite 
d'un CHR$(12) ;. Ce print#8 met les 
pendules à l'heure et nous évite certai¬ 
nes farces, surtout sur la lettre n° 1. 

En TAB(45) on écrit le nom et l'adresse 
du destinataire pris dans le DIM F$ 
(lignes 5040 à 5060). Nota : les champs 
ou rubriques de ce tableau sont légen- 
dés ligne 4020. 

Ligne 5090, on commence l'écrituredes 
lignes de texte du DIM L$ mais en débu¬ 
tant chaque fois par un TAB(8), c'est la 
marge de gauche. 

Vous remarquerez que ces chaînes 
(DATA des lignes 3010 à 3080) ne font 
jamais plus crune ligne. On ne fait pas 
confiance au saut de ligne par l'impri¬ 
mante qui pourrait nous couper un mot 
là où il ne faudrait pas... 

Ligne 5100. On imprime OBJ$ en cen¬ 
trage automatique et en double frappe 
afin de le mettre bien en évidence dans 
la lettre. 


Ligne 5120. On s'offre le luxe d'ajouter 
dans le texte une des valeurs du fichier, 
ici la ville du client. C'est facile puisque 
c'est une fin de phrase sur une ligne cour¬ 
te. 

En revanche, la ligne 5130 est plus har¬ 
die. Dans la formule de politesse, on 
INCLUT le nom du destinataire en plein 
milieu de la ligne. Donc on prend un ris¬ 
que puisque la longueur de ce nom 
criange chaque fois. Aussi la phrase à 
droite de ce nom est relativement courte. 
On aura donc un saut de ligne plus ou 
moins prématuré, mais ce n'est pas tel¬ 
lement gênant. Beaucoup de traitement 
de textes avec option "mailing" (et ils 
sont rares) ne feraient pas mieux. 

Le listing de ce module 5000 peut paraî¬ 
tre lourd parce que pas-à-pas. Certes, 
mais ainsi il est très facile à retoucher. 


Quelques petites astuces 

■ Quand vous taperez vos DATA de 
lignes LS, il foudro veiller à ne pas 
dépasser 72 caractères. Alors passez en 
MODE 2 puis topez : 

WINDOWoO, 1, 72, 1, 25 

et votre écran fera 72 caractères par 

ligne. 

- Avant de taper votre module 5000, 
préparez-vous une "touche pour fainé- 
nont", ici le 6 du pavé numérique : 
KEY 134, "?#8, TAB(8);" 


»»»»*««»**** 


Orléans le 5 avril 1988 


Monsieur GOILLEMI» 
SOGELEC 
23 rue du NOBD 
La Saulaie ,.r,Ton 

03150 VABESNB e/ALLIEB 


lonsieur GOILLEMItt. 

, trAs intéressé par un natérlel 

-veruTûuranr^rsorair^ 

une BIDOOILLEGSE EXCEMTB1G08 

Plaisir sur votre denande de venir vous présente 
rrouferarricîrt TaBEMBE s/ALLIEB. 

, Monsieur GGILLEMI». de croire à l'.88uranoe 

rUTenŒ; “irriîlcurs. 

Jean-Paul DOBOIS 


14 


P. J. : 1 docunentatlon 


CPC 36- Juillet/Août J 988 









LISTING 


Conclusion 

Vous avez appris le langage de votre 
CPC, familiarisez-vous avec celui de 
votre imprimante. 

Nous avons vu comment l'adapter à 
votre micro (c'est quasi définitif) et com¬ 
ment lui transmettre quelques ordres sim¬ 
ples qui ont conduit à un produit assez 
élaboré. Vous doutiez-vous qu'un listing 
BASIC aussi court pouvait suffire pour 
éditer des lettres commerciales person¬ 
nalisées ? Pour bien d'autres exemples 
aussi faciles que spectaculaires, voir du 
même auteur "La Pratique des Impri¬ 
mantes" (SORACOM). J'aurai au moins 
réussi à glisser deux pubs dans le même 
article... 


10 ' LETTRE r/PE avec MAILJNG -- Michel Archamcauit 04/ >LA 
88 

20 DEF INT A-Z >NJ 
100 DIM F$(100,6).L$(20) /OT 
200 30SUB 3000 NG 
ICiOO ' départ >XD 
1010 MODE ULOCATE 7.3:PRINT"Circuiâire aux Clients pou >PP 
r" 

1020 LOCATE 7,5;PRINT''Presentation nouvel Article" >GN 
1030 LOCATE 11.11:LINE INPUT"Date du jour ",DAT$ >WF 
1040 LOCATE 1.13:LINE INFUT’'No(ii de l'article ".0BJ$ >BX 
1050 LOCATE 4,20:INPUT"Preparez 1 ' Imprimante puis ENTER >LID 
“.R$ 

2000 ' édition des lettres >XE 
2010 PRINTi8,CHRI(27)init >VF 
2020 PRINTI8,CHR»(27);"R";CHR$(1);: France >CZ 
2030 PRINT#8,CW$(27);"x";CHR$(l);:'NL0 >DH 
2040 FOR N=1 TO NF:G0SUB 5000;NEXT >BC 
2050 PRIMTIB,CHR$(27);"ê" : ' init >UB 
2060 CLS:END >JC 
3000 ' MISE en MEMOIRE des VARIABLES >XF 
3010 DATA "Nous sommes certains que vous serez tr}s int >KH 
{ressi par un raattriel" 


3020 DATA "nouveau fiqurant dîsormais B notre catalogue >LB 
, @ savoir" 

3030 DATA "Notre agent se fera un plaisir sur votre dem >UV 


ande de venir vous prfsenter" 

3040 DATA’ce nouvel article i “ XFCl 
3050 DATA "Nous vous prions. Monsieur " >RU 
3060 DATA ", de croire @ l'assurance" >MK 
3070 DATA "de nos sentiments les meilleurs." >AR 
3080 DATA "P.J. ; 1 documentation" >GR 
3200 RESTORE 3010:F0R N=1 TO 8:READ L$(N):f€XT '>NJ 
3210 D0UB$=CHR$(27)+"G"; frappe double >RC 
3220 D0UBX$=CHR$(27)+"H": annule D0UB$ >TU 
4000 ’ Fichier client F$(N,6) >XG 


4010 ' Ce module remplace ici un chargement de fichier >XH 
par OPENIN 

4020 'l=Nom Société ; 2=ad'res5e A ; 3=adresse B ; 4=cod >XJ 
e postal ; 5=ville ; 6=directeur 

4030 DATA S0SELEC,"23 rue du N0RD"v,"La Saulaie”.03150," >XB 
VARENNE s/ALLIER",GUILLEMlN 

4040 DATA "Etablissements COVERT","34 Bd CHAVE",,13004, >JA 
MARSEILLE,GAILLARD 


4050 NF=2:RESTORE 4020 >0C 
4060 FOR N=1 TO NF:F0R J=1 TO 6 >1® 
4070 READ Fi(N,J):NEXT:NEXT >WV 
4080 RETURN >ff 
5000 ' EDITION d'une LETTRE >XH 
5010 PRINT#8 >6K 
5020 PRINT#8,TAB{50)i"Orl{an5 le "jDATi >LR 
5030 FOR 1=1 TO 6;PRINT#8:fEXT >yH 
5040 PRINTI8,TAB(45);"Monsieur ";F$(N,6) >LH 
5050 FOR 1=1 TO 3:PRINT#8,TAB(45);F$(N,I):NEXT >PJ 
5060 PRINT#B,TAB(45);F$(N,4);" ";F$(N,5) >GF 
5070 FOR 1=1 TO 5;PRINTI8:NEXT >YL 
5080 PRINTI8,TAB(8);"Monsieur ";Fi(N,6);",";PRINT#8;PRI >KC 
NT#8 

5090 FOR 1=1 TO 2;PRINTIB,TAB(8);L$(I):NEXT:PRINTi8 >XG 
5100 PRINTI8,S>C((BO-LEN(OBJt))/2);DOUB$;OBJt;DOUBXi:PR >JU 
INT#8 

5110 PRINTI8,TAB(8);L$(3) >U6 
5120 PRINTi8,TAB(8);Li(4);F$(N,5);".":PRINTi8;PRINTIB >ZA 
5130 PRINT#8.TAB(8);Li(5);Fi(N,6);Lt(6) >FB 
. 5140 PRINT#8,TAB(8);Li(7) >UP 
5150 FOR 1=1 TO 4:PRINT#8;NEXT >YJ 
5160 PRINTi8,TAB(45);"Jean-Paul DUBOIS" >LJ 
5170 FOR 1=1 TO 10:PRINT#8:NEXT >ZK 
5180 PRINT#8,TAB(B);Li(8) • >UV 
5900 PRINT#8,CHRi(12);:' saut de page >RU 
5910 RETURN >FJ 


CPCn " 36 - Juillet/Août 1988 


15 












traitement 

DE LMMAOE 



Iraitement des images binaires i 


GENERALITES 

■ Nous l'avons déjà dit : l'image binaire est une 

mjK image qui ne comporte que deux niveaux de gris. 

Elle représente un cas particulier de l'image com¬ 
portant des niveaux de gris ou de couleurs. Tout ce qui 
a été dit pour l'image en général reste valable pour 
l'image binaire et notamment l'organisation des pixels en 
cellules poligonales. Dans ce qui va suivre, nous continue¬ 
rons à considérer les cellules en forme de carré et le voisi¬ 
nage immédiat (3x3) d'un point comme étant constitué de 
huit voisins, dont quatre directs et quatre indirects. 
L'image binaire possède aussi ses caractéristiques propres. 
C'est la seule image admettant l'algèbre booléenne, le 
pixel allumé pouvant être assimilé au "vrai" et celui éteint 
au "faux", représentés par "1" et "0". Dissipons tout de 
suite un malentendu : les niveaux 0 et 1 ne sont pas forcé¬ 
ment noir et blanc. Ils peuvent correspondre soit aux 
niveaux de gris, soit aux couleurs voulus. Pour que l'image 
soit très lisiwe, il est pratique que les niveaux ou couleurs 
choisis soient opposés ou d'un écart important. Cela don¬ 
nera un bon contraste. 

Puisque la nature de l'image binaire admet les opérations 
booléennes, il est tout naturel de considérer les opérateurs 
comme de simples masques. Ainsi l'application d'un mas¬ 
que 3x3 sur le voisinage du point traité et une opération 
booléenne choisie donneront un résultat qui décidera de 


la valeur à attribuer au point traité. Comme d'habitude, 
cette opération sera répétée pour chaque point de l'image. 
Si le terme "booléen' ne vous dit rien, prenez le manuel 
de l'utilisateur de votre CPC et cherchez dans la liste des 
mots clés l'explication des opérateurs AND, OR, NOT et 
XOR. 

EXTRAaiON DES CONTOURS 

L'extraction des contours est beaucoup plus simple dans 
le cas des images binaires. Ceci provient du fait qu'une 
région de "vrais" ne peut pas avoir pour voisin autre chose 
qu'une région de "faux" ou un bord. Il suffit de faire la 
somme des "vrais" des huit voisins plus le point traité. Si 
cette somme est comprise entre 2 et 9 (exclu), le point traité 
appartient au contour. Si la somme est égale à 9, le point 
traité est dans la région de "vrais", mais pas sur le con¬ 
tour. Si la somme est égale à 0, 1 ou 2, il sagit des points 
isolés. Ces points représentent le bruit et sont éliminés. 
Le programme du listing n® 12 est basé sur ce principe. 
En ce qui concerne les niveaux "vrais" et "faux", ceux-ci 
sont représentés par 9 (chr$(57) et espace (chr$j32)).^ 
Sauvegardez ce programme sous le nom "CONTOUR". 
Vous l'utiliserez pour extraire le contour de l'image bina- 
risée au préalable par le programme "SEUILBIN" ou un 
autre. La figure n® 21 montre le résultat de ce traitement. 
Tous les bruits ne seront pas forcément éliminés. L'épais¬ 
seur du contour ne sera pas, non plus, obligatoirement d'un 
seul pixel. Nous verrons dans ce qui suit comment élimi¬ 
ner ces parasites. 

L'utilisation de l'extraction des contours dans un but artis¬ 
tique est évidente : les dessins en ombres chinoises peu¬ 
vent être remplacés par les dessins des contours. 


16 


CPC n°36- Juillet/Août 1988 




































ïsaa 
9£* 99 
9999999 
993 399 


999 
9 9 

9 O 

,cj 


999 

9 


999 999 

999 î»99 

3093933 
9 9 9 9 

99 9 


Figure n° 21 


393909 
9 9 9 9 

9 9 9 9 9 

9 39 9999 

''9 9 9 

9 9 9 

9 9 

9 9 

9 '♦ 999 9 

399 9 
9 9 

9999 


9 
9 

9 9 
9 S 

3 
9 
9 

9 99 
999 
9 


999 
99 99 
9999999 
399 999 


999 
9 9 
3 3 
9 9 
9 9 
9 9 
999 


999 

9 


9 

999 


999 999 

9999999 
99 99 
9 99 


Contour de l'image binaire 



Contour de l'image binaire 


EROSION ET DILATATION 


Voici deux traitements que chaque artiste appréciera 
beaucoup. Si son dessin en ombres chinoises de la nymphe 
lui paraît trop abondant en rondeurs, l'application de l'éro¬ 
sion sera une vraie cure d'amincissement. Si son héros tuant 
le dragon lui paraît trop gringalet, l'application de la dila¬ 
tation en fera un géant. En même temps, les petites taches 
d'encre dues à sa négligence disparaîtront lors de l'éro¬ 
sion. Et comme il n'arrivait pas à bien encrer les régions 
sombres, la dilatation fera disparaître les petites taches 
blanches. En conclusion, les applications successives 
érosion-dilatation, puis dilatation-érosion, servent à net¬ 
toyer l'image de tous les bruits. Puis, une des deux, utili¬ 
sée une ou plusieurs fois, permet soit d'agrandir, soit de 
diminuer les régions de "vrais". Le programme du listing 
n° 13 effectue, selon le choix, l'érosion ou la dilatation. 
Pour chaque point de l'image, nous considérons les huit 
voisins plus le point lui-même. Dans le cas de l'érosion, c'est 
le résultat du ET (AND) logique qui sera retenu pour la 
nouvelle valeur du point. Dans le cas de la dilatation, c'est 
le résultat du OU (OR) logique. Au lieu de faire les neuf 
tests pour les neuf points, il est plus simple de tester la 
somme des valeur des neuf points. Dans le cas de l'éro¬ 
sion, pour obtenir "VRAI" après neuf ET, la somme doit 
être ^^1^ à neuf. Dans le cas de la dilatation, pour obte¬ 
nir "VRAI" après neuf OU il suffît que la somme soit supé¬ 
rieure à zéro. Le programme est fait selon ce principe. 
Sauvegardez-le sous le nom "ERODIL". Binarisez l'image 
comme pour l'extraction du contour, puis testez érosion- 
dilototion-dilotation-érosion. La figure n° 22 montre le 
résultat final de dilatation-érosion de l'image binaire. 

SQUELEniSATION 


La squelettisotion est une application destinée à ramener 
au strict minimum, donc à l'essentiel, les renseignements 
définissant la forme d'une région. L'avantage est évident, 
car le nombre de données à conserver sera plus petit. La 
transmission des données sera accélérée et le stockage 
occupera moins de place. D'autre part, et c'est très impor¬ 
tant, la reconnaissance des formes sera rendue nettement 
plus facile, le nombre de données à analyser étant réduit. 



Cette dernière utilisation ne concerne pas les arts graphi- 
ques, par contre l'imagesquelette, son stockage, puis la 
reconstitution de l'image originale, sont très intéressants. 
Ifl méthode de squelettisotion consiste en applications suc¬ 
cessives d'amincissement des régions, tant que cela est pos¬ 
sible en conservant les caractéristiques de forme des 
régions. C'est donc une forme particulière de l'érosion. Les 
masques et les tests utilisés ne sont pas les mêmes. De plus, 
pour effectuer un amincissement identiaue dans chacune 
des huit directions possibles, il faut appliquer successive¬ 
ment huit masques différents. Ces masques ressemblent aux 
huit opérateurs directionnels des filtres spatiaux mais c'est 
la logique booléenne qui est utilisée à la place de moyen- 
nage. De plus, les tests logiques ne sont pas identiques 
pour tous les points. Deux points opposés sont exclus dons 
chaque masque, les sept restants étant divisés en deux 
groupes. Cela donne sept tests plus le test entre deux grou¬ 
pes. Pour chaque point de l'image, il faut donc effectuer 
8 tests pour 8 masques et ceci jusqu'à ce que l'image 
devienne stable. C'est énorme et la démonstration de sque- 
lettisation par un programme écrit en BASIC ne serait vrai¬ 
ment pas raisonnable. Dans l'attente de la deuxième série 
d'articles, consacrée aux routines utilitaires de traitement 
de l'image, écrites en langage machine, contentez-vous de 
huit masques, que voici : 



1 0-1 


0 -1 -1 

H0= 

1 -1 -1 

; Hl = 

1 -1 -1 


1 0-1 


1 1 0 


H2= 


H4= 


H6= 


-1 -1 -1 

0-1 0 

1 1 1 


■1 0 

■1 -1 
■1 0 


1 


1 


1 1 1 
0-1 0 
-1 -1 -1 


H3= 


H5= 


H7= 


-1 -1 
-1 -1 
0 1 

0 1 

-1 -1 
-1 -1 

1 1 

1 -1 
0 -1 


939 
.9 9 9 
9 iï 9 
3 9 9 
999 
999 
993 
999 
9 99 


39339 
99999 
99 99 9 


939 
99 9 
•’9 9 


Figure n° 22 


99399939 

99999999 

999999999 


39399 
9 9 9 9 9 
T» 9 9 9 9 


999 

999 


3 93 3 

99 9 

999 

339 

999 

9999 


3 9 9 3 
9 9,9 
9 99 
333 
999 
9999 


939933939 
99999999 
9 9 9 9 9 9 *'* 

39 33 
999 
9 9 9 


9 

333 
999 
999 
9 99 
9 99 
999 
939 
999 
99 9 
3 


93939 

99999 

■ «in 


9 9 9 3 9 
99999 


3 3 3 
9 9.9 
999 


993 
9 99 
T?'i 
■ 9 


Enigme binarisée par seuillage binaire 
avec seuil = 4 après érosion-dilatation. 


, 3 3iJ3 9 
9 99999 

9 999 9 
939 
999 
999 


999 
99 9 
999 
9 33 
999 
999 


939 
999 
99 9 


993 

999 

999 


9 999 9 
9 99999 
9 999 3 


Figure n° 23 

333993399 

999999999 

999999993 

999 939 

999 999 

999 999 

999 993 

999 999 

9 9 9 9 39 

399399399 

999999999 

999999999 

999 

999 

999 


_3 939 3 

3 99399 9 

9 999 9 


999 
999 
999 
33 9 
3,9 9 
339 
999 
999 
999 


999 

999 

333 


399 

999 

999 


^^9 999 9 

3 39999 9 
3 339 3 


Image précédente après la segmentation en régions homogènes. 


CPC n° 36- Juillet/Août 1988 


17 








































Les "0" sont les point exclus,Jes "1" correspondent aux 

.. - ■ - • • 


tests OU, le "-V aux tests NON et ET. Les 
sont liés par le test OU. 


deux groupes 


Nous avons déjà vu qu'il est possible de segmenter une 
image de plusieurs manières. Ceci est aussi valable pour 
l'image binaire. L'extraction des contours étant déjà étu¬ 
diée, nous examinerons la segmentation des régions. 
Dans l'image binaire, les régions de "vrais" sont par défi¬ 
nition isolées des régions des "faux". Alors, de quelle seg¬ 
mentation s'agit-il ? 

Nous avons défini l'image comme un ensemble de points 
organisés en cellules carrées. Les sous-ensembles de 
l'image sont donc les groupes de cellules comportant un 
certain nombre de points. Pour avoir des formes homothé¬ 
tiques, ces groupes seront aussi de forme carrée. La lon¬ 
gueur de côté ae chaque sous-ensemble dépend de la 
Forme des objets représentés. Si l'image globale est de 
forme carrée et de longueur de côté paire, la première divi¬ 
sion en sous-ensemble sera une division en carrés de 
dimensions identiques. Si ce n'est pas le cas, (comme pour 
notre image), il faut trouver le plus grand aiviseur com¬ 
mun des deux côtés de l'image qui sera le côté du carré 
du premier sous-ensemble. Cela n'est pas toujours possi¬ 
ble. Notre image est de 21x40 points. Le plus grand divi¬ 
seur commun est 1 I Alors, que faire ? Voyons, tout 
d'abord, ce que nous souhaitons obtenir. 

L'intérêt de la segmentation en régions homogènes réside 
encore une fois dans la diminution du nombre de données 
définissant l'image. Il faudrait donc diviser l'image en plus 
etit nombre de carrés de plus grandes dimensions possi- 
le, chaque carré étant entièrement soit "VRAI" soit 
"FAUX". Il serait idéal que la première division corres- 
sonde au plus grand carré homogène et que son côté soit 
e diviseur commun. Imaginons une image représentant un 
échiquier noir et blanc 8 x 8. Le diviseur commun sera L/8 
et chaque sous-ensemble sera parfaitement homogène. Il 
y aura 32 carrés noirs et 32 blancs. Pour définir parfaite¬ 
ment cette image, il suffit de conserver le diviseur ou le 
nombre de sous-ensembles et leurs caractéristiques dans 
l'ordre habituel i, j. 

Imaginons maintenant que l'un des carrés blancs et l'un 
des carrés noirs ne soient pas homogènes mais constituent 
eux-mêmes les damiers. Nous effectuerons la seconde divi¬ 
sion en sous-ensembles de deuxième génération mais uni¬ 
quement pour ces deux carrés. Et ainsi de suite, pour n'ob¬ 
tenir que des carrés homogènes. 

Qui dit génération dit arborescence. Si vous avez déjà étu¬ 
dié l'organisation des fichiers, vous reconnaîtrez la simili¬ 
tude avec un index hiérarchisé. On accède au renseigne¬ 
ment concernant les carrés en partant de la racine (^qui est 
l'image), par les branches principales constituant la pre¬ 
mière division, jusqu'aux feuilles terminales constituées par 
les carrés homogènes indivisibles. 

Revenons à notre problème de la première division. Si le 
diviseur commun n'existe pas ou s'il est trop petit et donc 
sans intérêt, nous choisirons le plus grand carré homogène. 
Commençant les divisions par l'angle supérieur gauche, 
nous déborderons tout simplement sur la droite et vers le 
bas de l'image. Evitez néanmoins une grande déforma¬ 
tion des derniers carrés. 

Une fois encore, nous allons détourner une méthode de 
traitement de l'image au profit de l'art. Au lieu de diviser 
l'image en régions nomogènes de tailles variables, nous 
diviserons l'image en régions non homogènes mais de 
mêmes dimensions. Ensuite, nous compterons pour chaque 
carré le nombre de points "VRAI" quelle soit leur posi¬ 
tion au sein du sous-ensemble. Ce chiffre sera arrondi au 
multiple le plus proche correspondant à l'un des diviseurs 
entiers de lù matrice seuil ayant les mêmes dimensions gue 
les sous-ensembles. Ce nombre sera le seuil de remplis¬ 
sage. On appliquera à chaque carré la matrice de seuil, 
avec le seuillage en fonction de ce nombre. 


I 




% 


Ce sera la première division mais cette fois, on commence 
par les tout petits carrés. Pour une image en mode 2, des 
carrés 8x8 seront parfaits. La deuxième division aura les 
carrés deux fois plus grands avec un nouveau seuillage 
et ainsi de suite, l'Image devenant de moins en moins recon¬ 
naissable. On peut s'arrêter à n'importe quel moment, mais 
on peut aussi continuer et obtenir un seul carré pour la tota¬ 
lité de l'image. Si vous êtes téléphie, cette méthode doir.^, 
être pour vous du déjà-vu. Pour obtenir les mêmes effets/^'' 
mais dans l'autre sens, il faut sauvegarder les images de ; 
toutes les divisions, puis les projeter dans l'ordre opposé. 

La démonstration à l'aide de notre petite image ne sera 
pas très persuasive. Faisons-la quand même avec notre voi¬ 
sinage habituel 3x3 comme carré de la première et uni-, 
que division. Saisissez le programme du listing n° 14 et* 
sauvegardez-le sous le nom "CARRES". Testez-le sur 
l'image binarisée. La figure n° 23 représente l'image de 
la figure n° 22 après segmentation en régions homogè- 
3x3 par ce programme. La figure n® 24 montre un 


nés 


exemple de traitement artistique par la même méthode.'. 



Figure n° 24 


' 9 
9 9 

9 

9 99999 3 

9 999 9 9 

9 99999 9 
9 9999999999 
9 9999999999 

9 9999999999 

9 999 999 

9 99999 9 9 9 

9 999 9 9 9 
9 9999999999 

9 9999999999 
9 9999999999 

9 99999 9 

9 999 9 9 

9 99999 9 

9 

9 9 

9 


9 9 9 

9 99 99 9 

9 9 9 

9 999999999 9 
99999999999 
9 999999999 9 

99999999999 
9 999999999 9 

99999999999 
9 9999399999 
9999999999 9 

9 9999999999 
99999993999 
9 999999999 9 

93999999999 
9 9999 3 9 

9999 999 

9 9999 9 9 
9 

9 9 
9 


9 99 
9 9 9 

3 99 

99999 
9999 
99999 
9999 
9999 
9999 
99999 
9999 
9 9 9 9 9 
9 99 

9 9 

9 99 


9 

9 

9 

999 9 
99 9 

999 9 
99999 9 
999999 9 

99999 9 
9 9 9 

9 9 

9 9 9 

99999 
999999 9 

99999 3 

393 3 

99 9 

9 9 9 9 
3 

9 

9 


9 


Un exemple de traitement artistique. 


Ainsi s'achève votre initiation. Les notions que vous 
possédez maintenant sont loin des connaissances 
complètes sur le traitement de l'image Certains 
aspects n'ont été qu'effleurés. Certains domaines, 
comme la reconnaissance des formes et le codage, 
ont à peine été cités. Vous avez néanmoins des 
connaissances suffisantes pour pouvoir donner à 
vos dessins ou vos images scannérisées un aspect 
plus libre, plus artistique, par un traitement 
approprié. 

Et pour terminer, voici l'image que vous devez 
obtenir après un traitement correct de l'image- 
énigme. 


18 


CPC n^Sô- Juillet/Août 1988 









>RL 

>F« 

>UH 

>CD 

>6Y 

>EC 

>ED« 


Msting 13 

13000 'EROSION ET DILATATION "ERODIL" 

13010 ' 

13020 nODE hHINDOU 1,40,23,2S:MIND(]U«1,1,40,1,22 
13030 LOAD'IMAGE.SCR' 

13040 DIM K(22,40),a(10) 


12360 FOR i=l TO 21:a$=" 

12370 FOR j=l TO 40:a$=a«+CHR<(ec(i,j)) 
12380 NEXT j!PRINTtl,a$; 

12390 NEXT i 

12400 CLS;SAVE'IMA6E.SCR',b,«:000,lt4000 
12410 END 
12510 END 


\lstmg 12 


12000 'EXTRACTION DU CONTOUR 'CONTOUR" >CJ 
12010 ' >a< 
12020 NODE hUINDON 1,40,23,25:WINDON*!, 1,40,1,22 >RK 
12030 LOAD'IMAGE.SCR' >QQ 
12040 DIM ec(22,40),a(10) >RZ 
12050 ' >DD 
12060 ' >DE 
12070 k*0 >BD 
12080 FOR i=l TO 21:L0CATE 1,1:PRINT i, >FP 
12090 FOR j»l TO 40:ec(i,j)=32:L0CATE 10,1:PRINT j >TC 
12100 L0CATE#l,j,i:s8=ASC(C0PYCHR$(ll)):IF s8=32 THE >T6 
N 12340 ELSE s8=0 

12110 IF i*I THEN 12170 >PF 
12120 IF j»l THEN 12140 >PE 
12130 L0CATEIl,j-l,i-l:s8*58-(ASC(C0PYCHR$(il))»57) >XF 
12140 LOCATEIl,j,i-l ts8=s8-(ASC(C0PYCHR$(*l))=57) >W) 
12150 IF j=40 THEN 12170 >{« 
12160 L0CATEtl,j+l,i-l:s8=s8-(ASC(C0PYCHR4(tl))=57) >X6 
12170 IF j=l THEN 12190 >QG 
12180 L0CATEil,j-l,i:s8=s8-(ASC(CflPYCHR$(il))=57) >VK 
12190 L0CATEIl,j,i:58=s8-(ASC(C0PYCHR$(il))=57) >TP 
12200 IF j=40 THEN 12220 >QB 
12210 L0CATE#l,j+l,i:s8»s8-(ASC(C0PYCHR$(il))=57) >VB 
12220 IF i=21 THEN 12280 >flH 
12230 IF j*l T)€N 122S0 >QA 
12240 L0CATEIl,H,i+l:se»s8-(ASC(CaPYCHR«(il))«57) >XF 
12250 L0CATEil,j,i+l:s8»s8-(ASC(C0PYC»W(fl))»57) >VF 
12260 IF THEN 12280 >gP 
12270 L0CATEil,j+l,i+l:s8=s8-(ASC(CCIPYClW(#l))=57) >X6 
12280 k=s8 >NK 
12290 s8=0 >LD 
12300 IF (k>2 «D k<9) THEN ec(i,j)=57 >DV 
12310 ' >DC 
12320 ' >DD 
12330 ' >DE 
12340 NEXT j >CE 
12350 NEXT i:CLSil >HH 


13050 INPUT'erosion E ou dilatation D ',ai:amJPPER$(a$ >RR 
):CLS 

13060 s8=0 >JH 

13070 k=0 >BE 

13080 FOR i=l TO 21:L0CATE 1,1;PRINT i, >FQ 

13090 FOR j=l TO 40;ec(i,j)=32 >XM 

13100 LOCATE 10,1:PRINT j >UQ 

13110 IF i=l THEN k=k+3i6OT0 13170 >AD 

13120 IF j=l THEN k=k+l:G0T0 13140 >AA 

13130 L0CATE#l,i-l,i-l;s8=s8-(ASC(C0PYCHRI(il))=57) >Xe 

13140 LOCATEil,j,i-l :s8»58-(ASC(C0PYCHR$(il))*57) >IC 

13150 IF jMO ÏÏCN k*k+l:GOTO 13170 >BR 

13160 L0CATEil,j+l,i-l;58=58-(ASC(C0PYCHR4(ll))=57) >XH 

13170 IF j=l THEN k=k+l:G0T0 13190 >BC 

13180 L0CATEIl,j-l,i:s8*s8-(ASC(C0PYCHR$(ll))»57) >VL 

13190 L0CATEIl,j,i:s8»s8-(ASC(C0PyCNR$(tl))>S7) >TQ 

13200 IF jMO THEN k=k+l:GOTO 13220 >BH 

13210 L0CATEtl,j+l,i:s8=s8-(A6C(C0PYCHR«(ll))==57) >VC 

13220 IF i=21 THEN k«kt3sG0T0 13280 >BR 

13230 IF j*l THEN 13250 >QC 

13240 LOCATE#!,j-l,i+li58=s8-(ASC(COPYCHRI(11))=57) >XG 

13250 L0CATEil,j,i+l:s8=s8-(ASC(C0PYCHR$(#l))=57) >VG 

13260 IF j=40 THEN k=k+l!GOTO 13280 >BM 

13270 LOCATE#!,j+l,i+l:58=58-(ASC(C0PYCHR$(ll))=57) >XH 

13280 k=9-k >VC 

13290 IF a$='D' AND 58>0 ÏÏCN ec(i,j)=57 :GOTO 13320 >TM 

13300 IF a$="E" AND s8=k THEN ec(i,j)=57 :GOTO 13320 >TH 

13310 ec(i,j)=32 >FJ 

13320 k=0 >BJ 

13330 s8=0 >KF 

13340 NEXT j >CF 

13350 NEXT i;CLS#l >MJ 

13360 FOR i=l TO 21:af=“" >RM 

13370 FOR j=l TO 40:a$=a»+CHR$(Bc(i,j)) >FN 

13380 NEXT j:PRINT#l,a»; >UJ 

13390 NEXT i >££ 

13400 CLS:SAVE"IMA6E.SCR",b,M:0OO,M0OO >GZ 

13510 END >E£» 


CPC n" 36- Juillet/Août 1988 


19 
















\isting 14 


14000 'SEGieiTATION DETOURhCE "CARRES" >DA 
14010 ' >DB 
14020 MODE 1:WIND0W 1,40,23,25:WINDC»I#1,1,40,1,22 >RI1 
14030 LOAD"IMAGE.SCR" >QT 
14040 DIM ec(22,40),a(10) >RB 
14050 FOR i=l TO 21: FOR: j=l TO 40 >YQ 
14060 ec(i,j)=32 >FB 
14070 NEXT j,i:k=0!s8=0 >RT 
14080 FOR i=2 TO 21 STEP 3:L0CATE 1,1:PRINT i, >MH 
14090 m j=2 TO 40 STEP 3 >RX 
14100 LOCATE 10,1:PRINT j >UR 
14110 ' IF i=l THEN k=k+3:G0T0 5170 >DC 
14120 ' IF j=l THEN k=k+l:60T0 5140 >DD 
14130 LOCATE#!,j-l,i-l: 58 =s 8 -(ASC (CaPYCHR$ (11))=57) >XH 
14140 LOCATE#!,j,i-l : 58 = 58 -(ASC(COPYCHR#(#1))=57) >MF 
14150 IF j=40 T)£N k=k+l:GOTO 14170 >BÜ 
14160 LXATE#l,j+l,i-l:58=58-(ASC(C0PYCHRf(#l))=57) >XJ 
14170 ■ IF j=l THEN k=k+l:60T0 5190 >DJ 
14180 LOCATE#!,j-l,i:58=58-(ASC(C0PYCHR$(#l))=57) >VM 


14190 LOCATE#!,j, 1 : 58 = 58 -(ASC(C0PYCHR$(#1))=57) >TR o 


14200 IF j=40 TICN k=k+l:GOTO 14220 >BK 
14210 LOCATE*!,j+l,i:58=58-(ASC(C0PYCHR$(#l))=57) >VD 
14220 IF i=21 THEN k=k+3:60T0 14280 >aj 
14230 IF j=l THEN 14250 >QE 
14240 LOCATE#!,j-l,i+l:s 8 = 58 -(ASC(C 0 PYCHR«(#l))= 57 ) >XH 
14250 LOCATE#!,j.i+l: 58 =s 8 -(ASC(C 0 PYCHR$(#l))= 57 ) >VH 
14260 IF .j=40 THEN k=k+l:GOTO 5280 >CJ 
14270 LOCATE#!,j+1,i+ 1:58=58-(ASC(C0PVCH<*(#1))=57) XJ 
14280 k=9-k:IF 58<k/4 THEN 14320 >ZZ 
14290 IF 5 B<k /2 THEN ec(i-l,i)=57:ec(i,j-l)=57;ec(i, >XA 
j+l)=57:ec(i+l,j)=57 

14295 IF 58<k/2 THEN 14320 >TK 


14300 IF 58 < 3 *k /4 THEN ec(i-l,j-l)=57:ec(i-l,j+l)=57 >LF 
::ec(i, j)=57 

14305 IF 58 < 3 *k /4 THEN ec(i+l,j-l)=57:ec(i+l,j+l)=57 >JG 
:GOTO 14320 

14310 FOR iii=-l TO l:ec(i+i»,j-l)=57:ec(i+a,j)=57:ec( >UU 


i+ra,j+l)=57:NEXT n 

14320 k=0 >CC 

14330 sB=0 >LA 

14340 NEXT j >CG 

14350 NEXT i:CLS#l >Mk:. 

14360 FOR i=l TO 21 STEP l:a$="'' >XU 

14370 FOR j=l TO 40 STEP l:a$=a$+CHR$(ec(i,j)) >MY 

14380 NEXT j:PRINT#l,a$; >UK 

14390 NEXT i >CF 

14400 CLS: SAVE“IMAGE.SCR“,b,8(COO0,S(4OOO >HY 

14510 END >EF* 





Souvent réclamées, voici les compilations de CPC. Vous 
y trouverez les listings des anciens numéros ainsi que cer- 


coMnunoN ks 
1-2-3-4 


AMSmS 


COMMLAnON 

des remes numéro 

5 - 67 - 8 ^ 


La Haie de Pan 
35170 BRUI 


tains articles de fond. 


A posséder absolument 


□ Compilation 1 


80 F 


npila 

(n° f à 4) 

□ Compilation 2 

(n» 5 à 8) 80 F 

Frais de port 10% 


Nom : 
Prénom 


• Code Postal 


• Ville : 
T Date : 


-Signature 


• Merci d'écrire en majuscules. 

“ Ci-joint un chèque libellé à l'ordre 
des Editions SORACOM. 






























Jean-Luc LARTIGUE 

c 

programme permet d’écrire une chaîne de caractères sur 20 cm de hauteur. 

Son utilisation est très simple. 

A la demande de l’ordinateur, entrez la chaîne que vous désirez imprimer (celle-ci peut comprendre des 
majuscules, des minuscules, des caractères accentués). Sélectionnez ensuite la hauteur et la largeur 
d’impression. Ensuite, prévoyez suffisamment de papier ! 

N.B. Ce programme fonctionne sur DMP 2000 et sur CITIZEN 120 D (il ne devrait donc pas y avoir de 

problème avec les imprimantes compatibles EPSON). 


ÎO ■- 

20 B A N D E I !1 P 

3(, -- 

40 Ecrit en 1986 

50 par Jean Luc Lartigue 
60 sur aiTistrad cpc 

70 '- 

80 sa-'e''bandei,'i!P" 


100 : 

110 — initialisation -- 
120 : 

130 CLEARrMODE 2:CALL îcBBOO 
140 SYMBOL AFTER 64 —- clavier qwerty et accentu 

{ - 

150 SYMBOL 125,?(60,{(10,!<3C,&66,ê,7E,8(60,?(3C,!(0:l>;EY 135,C 
HR$(123) 

160 SYMBOL 123,Î(6,Î.8,&3C,!(66,S,7E,!(60,3(3C,S(0 :KEY 128,C 
HR$(125) 

170 SYMBOL 64,&60.8<10,!!78,!(C,S,7C,!iCC,.Î!76,Îi0 :KEY 129.C 
HR$(64) 

IBO SYMBOL 92,t(0.?i0;WC,J(66,.l!60,î(3E,!(e,?(18 sKEY 132,C 
HR$(92) 

190 SYMBOL 124,îi30,!(6,!’:66,2(66,Si66,S(66,!<3E,î<0 ;ŒY 137,C 
HR$(124) 

200 SYMBOL 94,2<18,2(24,S(0,Î(0,!(0,!(0,«(0,3(0 :KEY 134,C 
HR$(94) 

210 SYMBOL 93,S!lE,&30,J(33,S(6i3,î(38,?(30,2!F0,îi0 ;KEY 131,C 
HR$(93) 

220 - 


230 W1ND0W#4,1,80,25,25:PAPER#4,1:PEN#4,0 'titre 

240 WIND0W#2,1,3,1,1 at-fichage texte 

250 WINDOW#!,1,80,8,23 'recopie imprimante pour test 

260 MINDON 1,80,2,7 saisies generales 

270 ORIGIN 0,399 : WIDTH 80 

280 PAF'ER OiPEN 1:BORDER 1:1NK 0,13: INK 1,0 

290 CLS#0;CLS#1:CLS#2:CLSI4 



>LA' 

>L3 

/LC 

>LD 

>LE 

rLF 

;15 

■^LH 

;LJ 

/YE 

>RC 

/YG 

>VH 

;NH 

>FD 

>DF 

>DJ 

>BJ 

>EC 

>YX 

>DC 

>RE 

>JK 

>NV 

>qN 

>MX 

>UQ 

>JU 

>WA 


330 : 

340 CL3 
350 CLEAR 

360 LINE lNPUT''Introduise: le met <255 caractères ma:<) 

? 

370 IF LENImïXl OR LEM(ffl*)/255 THEN 360 

380 INPUT"Voule:-vou5 le sortir sur 1 imprimante (0/ ) 

■;rt:rt=UPPERS(Rt) 

390 IF r$="0" THEN ira=8 ELSE im=l 
400 at=m$ 

410 INPUT‘'Hauteur des lettres 1-8 {Enter = Bi : ":r$ 
:r»=UF'PER*(rï) 

420 haut=INT(yAL(r$)):IF haut=0 THEN haut=8:GOTO 450 
430 IF hautü OR haut>S THEN 410 
440 ; 

450 INPUT"Largeur des lettres 1-5 (Enter =2* : ":r$ 
:r$=UPPER»(r$) 

460 larg=INT(yAL(r$)):IF larg=0 THEN lârg=2:G0Tû 490 
470 IF largLl OR larg>5 THEN 450 
480 : 

490 CL5 :PRINT 

500 FRINT haut!‘'}me hauteur lârg;''}ffle larqeur ' 

510 PRINT 

520 PRlNT"X'';a$:"X" 

530 : 

540 : 

550 ii=0 

560 FOR 1=1 TO LEN(a$) 

570 car=ASC(MID$(a$,i,l)) : CLS#2;PRINTI2,CHRt(car); 

580 FOR- k=0 TO 7 

590 FOR j=-15 TO 0 5TEP 2 

pCiO :i=ii+l 

610 t=TEST(k,j) :PL0Tk,j 

620 IF t=l THEN tf=t$+STRING$(haut,CAR) ELSE t*=t$ 

+STRING*(haut,32) 

630 NEXT 

640 FOR A=1 TO iarg:PRINT#im,t$:NEXT ' Largeur de 
la lettre 


■YK 

>UB 

.;'KL 

)BL 

/EK 

>RC 

■■2T 
■ AE 
>CT 

>XL 

>YL 

>ZB 

>CZ 

>11 

>YQ 

>ZF 

/'BB 

>NJ 

■.^N« 

)ZB 

rZC 

>YB 

..’PF 

m 

>ZE 

>Rï 

>AC 

>VA 

>VP 

>GE 

>GN 


300 PRINT#4," BANDEIMP : Fabrication de banderoll 
e... Jean Luc Lartigue 1986" 

310 : 

320 Boucle principale — 


>NA 

>YH 

>RFi 


650 T$="": 

660 NEXT 
670 NEXT 
680 GOTO 320 


ii=0 


>RJ 

>FK 

>EJ 

>ZFé 


CPC n'> 36- Juillet/Août 1988 


21 
















BA/^C PBSSA/ 


Um/TA/R£ 

HERCULE II 


H ercule II est un ensem¬ 
ble de 7 programmes 
tous dévoués à la 
sainte cause de la disquette 3” 
et de son lecteur amstradien. 
Les possesseurs de CPC ont 
encore de belles découvertes à 
faire s’ils ne sont pas très au 
courant des secrets de la dis¬ 
quette. En effet, derrière cet 
innocent objet de plastique noir 
se cache un monde fascinant 
rempli de GAP, d’ID, de sec¬ 
teurs et autres dénominations 
cabalistiques. 

Au lancement du programme, 
le menu dévoile 8 petites dis¬ 
quettes ornées de leurs noms 
respectifs. Procédons avec 
ordre et méthode. 

COPYLOCK 5.5 

Il s’agit là d’un utilitaire de 
copie de disquettes protégées. 
Parmi les diverses options, on 
trouve l’accès à un second lec¬ 
teur, la copie en 80 pistes (réser¬ 
vée aux lecteurs 5” 1/4) ou 
l’analyse d’une disquette. Au 
cours de la copie, Copylock 
vous informe du numéro de 
piste, du nombre de secteurs et 
de leur taille, du nombre d’oc¬ 
tets par secteur, du nombre 
d’octets sur la piste, du GAP de 
formatage de la densité. Enfin, 
le programme vous indique si la 
piste est formatée ou non. 
Certains de ces éléments sont 
repris dans une autre partie de 
l’écran consacrée aux secteurs. 
On y trouve en plus des indica¬ 
tions sur la tête de lecture utili¬ 
sée (simple dans le cas du 3”, 
quelquefois double pour les 5” 
1/4) et sur la taille des secteurs 
de 0 à 6 (dans ce dernier cas, 
seule la lecture est possible). 


A l’extrémité du tableau sont 
également indiqués les messages 
signalant les pistes “effacées” 
ou provoquant une erreur de 
lecture. Copylock ne pose pas 
de problème particulier concer¬ 
nant son fonctionnement puis¬ 
que tout est automatique, même 
la prise en compte du supplé¬ 
ment de mémoire du 6128. (En 
revanche, Copylock n’a pas 
reconnu l’extension 512 K de 
Vortex sur 464). Un seul regret 
cependant : les touches néces¬ 
saires au passage en 80 pistes 
ainsi qu’à l’accès au second lec¬ 
teur ne sont pas indiquées sur 
l’écran. 


ULYSSE 1.0 

Il s’agit là d’un copieur rapide, 
c’est-à-dire qu’il ne traite que les 
disquettes au format standard. 
Les options sont en nombre res¬ 
treint : définition des lecteurs 
source et destination, catalogue 
et copie. Ulysse ne possède 
pourtant pas de “compresseur” 
de données, ce qui oblige à 
effectuer des changements de 
disquette pour les possesseurs 
d’un lecteur unique. 


PHOENIX 

Cet utilitaire est plutôt unique 
en son genre : il permet le stoc¬ 
kage de 225 Ko de programme 
par face ! 

Certains d’entre vous me diront 
que cela a déjà été fait (ou pres¬ 
que) avec Turbo 416 (208 Ko 
par face). Mais les manipula¬ 
tions nécessaires pour utiliser 
cette mémoire supplémentaire 
étaient plutôt fastidieuses. 
Phoenix lui ne procède pas de 
la même façon, il implante un 
nouveau système d’exploitation 
sur la disquette. Pour cela, il 
faudra commencer par forma¬ 
ter une disquette en 225 Ko par 
l’intermédiaire de Phoenix. Le 
seul résultat visible sera la pré¬ 
sence d’un fichier intitulé “225 
K” au catalogue. De plus, le 
nombre de Ko vous surpren¬ 
dra : 176 Ko. Mciis où sont donc 
les 225 Ko promis ? Pas de 
panique. Ihfaut lancer le petit 
programme “225 K” pour ini¬ 
tialiser les nouvelles possibilités, 
c’est-à-dire que vous pourrez 
utiliser CAT, RENUM et ERA 
tout à fait normalement, ainsi 
d’ailleurs que CHAIN, LOAD, 


MERGE, CHAIN MERGE, 
OPENOUT et CLOSEOUT. 
Par contre, un SAVE en mode 
225 K n’est pas possible sans 
Phoenix. Il faut donc recharger 
Hercule à chaque enregistre¬ 
ment de programme. Il est dom¬ 
mage qu’une option copies mul¬ 
tiples n’ait pas été prévue, d’au¬ 
tant que pour remplir un disque 
jusqu’à 255 Ko, cette option 
aurait été bien utile. Il peut y 
avoir certains problèmes mais la 
plupart d’entre eux sont expli¬ 
qués et commentés dans la 
notice. Enfin les fichiers ASCII 
ne sont pas gérés par le nouveau 
système d’exploitation mais il 
vous sera possible de les stocker 
sur 225 Ko. 

Vous trouverez dans Phoenix 
d’autres options pratiques telles 
que l’effacement ou le change¬ 
ment d’un nom de fichier. 

FLOPPY 

C’est un des “gros morceaux” 
d’Hercule. Il est sous-titré 
Explorateur universel de dis¬ 
ques. il possède en effet une 
série d’options assez puissantes 
permettant de triturer le con¬ 
tenu d’une disquette. 







La première option “Identifica¬ 
teurs” nous propose un tableau 
regroupant les caractéristiques 
des secteurs d’une piste. Le 
nombre de secteurs affichables 
est de 20 mais ce chiffre peut 
être plus important. Vous entrez 
alors un numéro de piste de 0 à 
80 et le programme affiche alors 
l’ensemble des secteurs ainsi que 
leurs caractéristiques. En prime, 
vous avez droit aux réactions du 
contrôleur : 3 octets vous indi¬ 
quent (en chiffres) les erreurs 
survenues lors de la lecture. Un 
appui sur M vous ramène au 
menu. 

Le formatage comprend non 
seulement les options standards 
DATA et VENDOR mais éga¬ 
lement un format à la carte. 
Pour cela, il faut indiquer la 
taille des secteurs (de 0 à 5), le 
nombre de secteurs (0 à 32), le 
GAP (0 à 255) et le modèle de 
données (0 à 255). Ensuite s’af¬ 
fiche la liste des secteurs avec 
pour chacun leurs identifica¬ 
teurs, il faut entrer le numéro de 
piste, la position de la tête de 
lecture, le numéro du secteur et 
sa taille. Deux petits détails aga¬ 
çants ; les Redo from start qui 
apparaissent lorsque vous n’en¬ 
trez pas les données sous la 
forme correcte et l’impossibilité 
de répéter une même séquence 
pour un paramètre. 

Exemple : si l’on choisit 32 sec¬ 
teurs sur la piste 1, il faudra 
entrer 32 fois le paramètre 1 
concernant la piste (idem pour 
la tête). 

Heureusement, il est possible de 
“copier” ce formatage mais 
forcément sur des pistes conti¬ 
guës grâce à la suite du pro¬ 
gramme. Lorsque votre forma¬ 
tage est terminé, il vous est pos¬ 
sible de vérifier le résultat avec 
la lecture des identificateurs. 
“Lire une piste” est une option 
elle aussi fort intéressante 
puisqu’elle permet de lire entiè¬ 
rement une piste, c’est-à-dire 
avec les ID, les GAP... et pas 
seulement les données. Vous 
avez alors là une vue sur les 
entrailles de la disquette. Si vous 
désirez sauver une partie de ces 
données sous forme de fichier 
binaire, cela est possible. 
L’éditeur de secteurs est lui plus 
classique dans son affichage 
mais il possède quelques facili¬ 
tés d’écriture de secteurs sur 
n’importe quelle piste de la dis¬ 
quette ou une sauvegarde d’un 
secteur en un fichier. C’est éga¬ 
lement à ce niveau que vous 
déciderez si les données écrites 
seront “normales” ou “effa¬ 
cées”. 



Hercule II est un bon outil de 
travail pour les fanatiques de 
la disquette. (Je n’irai pas plus 
loin !). Il possède des modu¬ 
les très intéressants et très 
puissants (trop puissants ?) : 
Phoenix, Hoppy et Copylock. 
On peut lui reprocher un man¬ 
que de “finition”. Certains 
messages d’erreurs intempes¬ 
tifs viennent troubler votre 
sérénité et la présentation est 
parfois “dépouillée”. Que 
voulez-vous, on prend goût 
aux menus déroulants ! 


y trouverez égale¬ 
ment des indications précieuses 
sur la structure du disque, des 
secteurs et du catalogue. Par 
contre, je ne sais pas si ma ver¬ 
sion avait un “bug” mais il ne 
m’a pas été possible d’imprimer 
une partie de la notice comme 
cela est proposé dans le menu. 


Le catalogue ne nécessite pas 
d’explications supplémentaires. 
La localisation des fichiers vous 
permet d’obtenir différents ren¬ 
seignements tels que le bloc, la 
piste et les secteurs où est loca¬ 
lisé le fichier en question. Bonne 
initiative après l’affichage des 
données, il peut y avoir une sor¬ 
tie vers l’éditeur de secteurs afin 
d’utiliser les données obtenues. 
A l’intérieur de Floppy, il est 
possible d’imprimer la page 
courante en appuyant sur 
COPY. C’est une bonne idée 
pour ceux qui ont du mal à rete¬ 
nir les chiffres. A propos, pour¬ 
quoi ne pas avoir rajouté une 
option retour au menu principal 
dans le menu de Floppy ? Il suf¬ 
fit d’appuyer sur “R” pour le 
faire mais c’est tellement plus 
simple lorsque l’on a tout sous 
les yeux ! 


SECTOR 2.0 


Ce module est réservé aux pos¬ 
sesseurs d’imprimante car il se 
propose de sortir sur papier 
l’analyse complète d’une dis¬ 
quette avec les ID de secteurs, 
la taille des secteurs, le type de 
données... les messages d’er¬ 
reurs du FDC. 


DISPLAY 1.1 


Cet utilitaire affiche différents 
renseignements concernant les 
fichiers : nom, type, adresse. 


longueur et exécution, 
tains logiciels du commerce ce 
programme n’est pas exploita¬ 
ble. 

Les données ne peuvent plus 
être affichées (cas d’un catalo¬ 
gue déformé). A réserver en 
priorité aux disquettes “norma¬ 
les”. 


COPYACH 


Il fait partie du même module 
que Phoenix. On retrouve donc 
les mêmes caractéristiques : 
copie de fichiers non protégés, 
du format standard (178 K) 
jusqu’au format étendu (225 
Ko), changement de noms, effa¬ 
cement et autres formatages. 
AIDE 

Dernière option du menu prin¬ 
cipal, elle comprend une tren¬ 
taine d’écrans qui vous rensei¬ 
gneront sur l’utilisation d’Her- 









BAm PBS8A/ 



I l est enfin arrivé ! 
Mais qui ? Le Messie 
bien sûr. Un compila¬ 
teur de BASIC sur 
Amstrad c’est plutôt rare. Il 
faut donc en profiter pour expli¬ 
quer aux néophytes le comment 
du pourquoi. 

Un compilateur c’est un pro¬ 
gramme qui transforme un lan¬ 
gage évolué (le BASIC par 
exemple) en langage machine. 
Quel est l’intérêt de la manœu¬ 
vre ? Vous savez tous qu’un 
programme en BASIC n’est pas 
exécuté directement après un 
RUN, il y a d’abord une phase 
de “traduction”. Le micropro¬ 
cesseur va transformer les ins¬ 
tructions BASIC en code com¬ 
préhensible par la machine. 
C’est cette traduction qui expli¬ 
que la relative lenteur d’exécu¬ 
tion du BASIC par rapport au 
langage machine. Le Messie se 
propose donc de vous éviter 
cette phase de traduction en 
transformant immédiatement le 
programme en code. Ce qui 
veut dire que la vitesse d’exécu¬ 
tion va augmenter. Il n’est plus 
alors nécessaire de connaître les 
secrets du Z80 pour obtenir du 
langage machine. Cela est mal¬ 
heureusement théorique puisqu’ 
en fait le programme obtenu est 
rarement aussi compact et opti¬ 
misé que celui créé directement 
en code machine. 

Le mode d’emploi de Messie est 
plutôt simple. 11 suffit de char¬ 
ger par LOAD le programme 
BASIC à compiler puis de taper 
LOAD“ERE” :CALL &C000. 
Il s’agit surtout de respecter 
cette syntaxe car le programme 
principal occupe la mémoire 
écran, il ne faut donc absolu¬ 
ment pas qu’il y ait une écriture 
à ce moment. 


Si tout se passe bien, l’écran se 
“brouille” puis une certaine 
agitation se fait entendre au 
niveau du lecteur de disque. 
Vous devez donc avoir préala¬ 
blement introduit une disquette 
déprotégée contenant le pro¬ 
gramme de compilation puisque 
la procédure est automatique. 
Prévoyez une copie de l’origi¬ 
nal, on ne sait jamais... 

Sur votre disquette, vous 
devriez donc trouver un pro¬ 
gramme P.COM représentant le 
résultat des cogitations de Mes¬ 
sie. Il ne reste qu’à lancer ce 
programme et le tour est joué ! 
Il s’agissait là du cas idyllique ; 
aucun problème ne venant se 
glisser malicieusement dans le 
déroulement de la procédure. 
Mais il faut savoir qu’il y a par¬ 
fois des erreurs. Celles-ci peu¬ 
vent provenir d’instructions non 
comprises par Le Messie (voir 
liste) ou bien de la syntaxe par¬ 
ticulière du compilateur. Les 
datas doivent être guillemetés 
lorsqu’il s’agit de caractères 
alphabétiques. LOAD et SAVE 
ne traitent que les fichiers binai¬ 
res ; FILL ne fonctionne pas 
toujours. 

Du côté des performances, si 
l’on laisse de côté les limitations 
de reconnaissance des instruc¬ 
tions BASIC, la compilation 
génère un code plus important 
(en taille) que l’original. Pré¬ 
voyez de la place sur vos dis¬ 
quettes ! 

Vous trouverez sur la disquette 
quelques programmes BASIC et 
leurs équivalents compilés. Le 
gain en vitesse est d’environ 4 
secondes sur le programme 
CARTE. (Un dessin calculé 
s’affiche par rangée de points). 
En revanche, le programme 


compilé est 3 fois plus rapide 
sur le tri à bulles portant sur 50 
éléments. En général, tout ce 
qui concerne les graphismes 
n’est pas la meilleure démons¬ 
tration des possibilités de Mes¬ 
sie. Il est plus à l’aise dans le 
domaine des calculs. En effet, 
il accepte les variables en virgule 
flottante. Vous n’êtes donc pas 
limité aux nombres entiers, à 
vous les sinus, cosinus et autres 
tangentes. 

Après un bref aperçu de ce nou¬ 
veau produit, il semblerait que 
Le Messie soit un compilateur 
simple d’emploi ne demandant 
pas un apprentissage compli¬ 
qué. Par contre, il n’est pas 
vraiment “intégral” malgré la 
prise en compte des variables 
autres que les entières. En effet. 


APTE R 
AUTO 
CAT 

CHAIN/CHAIN MERGE 

CLEAR 

CONT 

COPYCHRS 

DECS 

DEF FN 

DEFSTR 

DELETE 

DERR 

EDIT 

ENT 

ERASE 

ERL 

EVERTY 

FN 

KEY DEF 

LINE INPUT 

FRAME 

IMP 

OUT 

SQ 

WAIT 

WIDTH 


les instructions incomplètes 
nécessiteront des modifications 
de vos programmes. De plus, 
contrairement à ce qui est indi¬ 
qué sur la pochette, les instruc¬ 
tions de BASIC 1.1 (6128-664) 
ne sont pas implantées sur Le 
Messie. Les programmes com¬ 
portant ces instructions ne peu¬ 
vent être compilés directement 
ni sur le 6128 ni sur le 664 à 
fortiori... 

C’est à peu près tout pour l’ins¬ 
tant. Le peu de temps qui m’a 
été imparti pour essayer ce pro¬ 
gramme est peut-être la cause de 
certaines erreurs de jugement. 
Les prochaines versions appor¬ 
teront sans doute de nouvelles 
possibilités. A suivre... 


LIST 

MAS K 

MAX 

MERGE 

MID 

MIN 

ON BREAK 
ON SQ GOSUB 
RENUM 

RESUME/RESUME NEXT 

ROUND 

RUN 

SPC 

SPEED WRITE 

STRINGS 

TAB 

TRON/TROFF 

ZONE 

CALL 

CLEAR INPUT 

DI 

El 

ENV 

ERR 

ERROR 


Liste des instructions non impiontées sur ie MESSIE 





^Jean-Louis GACHES 


CPM \ 

SüR-j^ 

464 


vous possédez un Amstrad 
464 muni d'un drive 3" 
^H^^DDI-1 et d'un extension 64 K 
RAM de marque DK'TRONICS (ou 
outre) alors il vous est possible de tra¬ 
vailler sous système d'exploitation 
CPM-t-, ce qui vous autorise l'accès à des 
logiciels professionnels comme MULTI- 
PLAN ou DBASE II. 

Comme vous le savez, l'Amstrad CPC 
modèle 464 (ou 664) utilise le CPM 2.2 
qui ne dispose, pour le chargement des 
logiciels, que d'une T.P.A. (Transient 
Program Area = zone des programmes 
transitoires débutant en lOOH) de 39.5 
K maxi, ce qui est bien peu comparé aux 
61 K que donne l'utilisation du CPM-I- 
sur un CPC 6128 muni de ses 128 K de 
RAM. 

Il est néanmoins possible, avec une 
extension RAM de 64 K connectée sur un 
CPC 464, de disposer de 61 K de T.P.A. 
sous CPM-H et donc d'utiliser bon nom¬ 
bre de logiciels écrits pour un 6128. 
Rappelons que le CPM 2.2 est contenu, 
pour sa partie résidente, sur les pistes 0 
et 1 de votre disquette système (9 K) : 
il s'agit du module C.C.P. (Console Com- 
mand Processor = interpréteur de com¬ 
mandes) et du module B.D.O.S. (Basic 
Disc Operating System = gestion géné¬ 
rale des disques), le B.1.0.S. (Basic Input 
Output System = gestion de la relation 
entre le matériel AMSTRAD et le logiciel) 
étant contenu dans la ROM BIOS de 16 
K (interface du DDI-1) dite ROM d'ex¬ 
tension disque. 

Le CPM + , contrairement au CPM 2.2, 
est contenu dans un fichier de 25 K 
nommé C10CPM3.EMS. 

Sur le disque système CPM-f, on trouve 
en piste 0, secteur 1, un chargeur de 512 
octets dont le rôle est de permettre le lan¬ 
cement du système d'exploitation. 

En ce qui concerne le lancement, il faut 
noter que s'il existe un fichier nommé 
PROFILE.SUB, ce dernier est exécuté 
automatiquement, ce qui permet de créer 
des procédures BATCH ou par LOT 
(comme pour un fichier MS DOS 
AUTOEXEC.BAT). 

Pour créer un disque système que nous 
nommerons ESSAI (disque système 
CPM-t- modèle 464), il convient de sui¬ 
vre le processus suivant. 


CHOIX DU DISQUEMMM 

Prendre un disque vierge 3 pouces non 
formaté (disque nommé ESSAI). 

FORMATAGE DU DISQUE 

ESSAMMMMMMRMMnw 

Ce disque sera formaté avec l'utilitaire 
FORMAT.COM du CPM 2.2, en format 
VENDOR (V) : les pistes 0 et 1 seront 
alors réservées et remplies d'octets à la 
valeur standard &E5 (valeur de l'octet 
de formatage). 


RECOPIE SUR LE DISQUE 
ESSAI DU FICHIER 

c 1 ocPMs.EMSÊmmmm 


Il convient de posséder, comme déjà dit, 
le CPM-l- et ses utilitaires : 

Insérer le disque CPM 2.2 

- Charger le CPM 

-Taper: FILECOPY C10CPM3.EMS 
<ENTER> 

- Insérer le disque source contenant le 
fichier Cl0CPM3.EMS <ENTER> 

- Insérer le disque destination ESSAI 
<ENTER> 

- En fin de travail, insérer le disque CPM 
2.2 <ENTER> 


10 ' INITCPMS.BAS 

ao ' 

30 ’ RECOPIE OU CHARGEUR DE CPM« SUR UN DISQUE VIERGE ESSAI FORMATE EN 

FORMAT VENDOR 
40 ' 

SO ' IC) GACHES Ja«r.-LouU 
60 ' 

70 1 - 

ÔO * 

90 CLôiMOOE ItCLEARtMEMORY i9FFF 

iOO FOR 1-iAOÛO TÜ (4ROOO-<>23} sREAO A»:P0K£ VAL(*'4'*-«'A$) iNEXT I 

110 DATA F3,OE,Û7,CD,OF,B9,C5,£l,ÔO,A£r, IE,00,16,00, OE, 41, CD, 66» C6, Cl, CD, 18,B9,C9 
lao PRINT **INSER£R DISQUE CPM^^ ModOle 6136 dans Ai <ENTER> ":CALL 4BB06:CAT 
130 CALL iAÛOOiPRlNT “ChArgcncnt RAM OK” 

140 IF N0T(P££K(4A£Û0)-&11 AND PEEK(tA£01>»tû AND PEEK(4A£02)»43 AND 

P£EK(AA£03)»421 AND PEEKdAaOO-t-SlD-ftCF) THEN PRINT “DISQUE NON CPU* module 
SiaS^tEND ELSE ISO 

ISO PRINT “INSERER DISQUE ESSAI FORMATE VENDOR dans At <ENTER)“tCALL 4BB06 
ISS POKE (iA0004l7>,44£ 

160 CALL AAOOO 

170 PRINT “RECOPIE OK i“ 

160 END 


Pratiquez ainsi : 

- Insérer le disque système CPM 2.2 (une 
copie bien évidemment) dans le drive A : 

- Charger le CPM (ICPM) < ENTER> 

- Taper FORMAT V <ENTER> 

- Insérer le disque ESSAI à formater 
<ENTER> 

- Insérer le disque système CPM 2.2 
<ENTER> 

ECRITURE SUR LE DISQUE 
ESSAI DU CHARGEUR DE 
CPM 

Il convient de lire le chargeur de 512 
octets qui se trouve en piste 0, secteur 1 
d'un aisque système CPM-l- modèle 
6128 et de le recopier au même endroit 
sur notre disque ESSAI. 

Il faut donc demander à votre vendeur 
le CPM-l- modèle 6128 et ses utilitaires 
lors de l'achat de votre logiciel 
rofessionnel. 

our cette recopie du chargeur, le petit 
jrogramme BASIC suivant nommé 
NITCPM3.BAS sera exécuté. 


Par la même occasion, recopiez sur votre 
disque ESSAI les 2 fichiers CPM-l- sui¬ 
vants : 

- SETKEYS.COM : utilitaire permettant 
la redéfinition du code ASCII généré par 
certaines touches 

- KEYS.CCP : fichier ASCII donnant la 
définition standard des touches pour l'in¬ 
terpréteur de commande du CPM-l- 

et le fichier CPM 2.2 : 

- SUBMIT.COM : utilitaire permettant 
l'exécution d'un fichier BATCH avec 
extension.SUB contenant des comman¬ 
des 

ALTERATION DU FICHIER 
C1 0CPM3.EMS«MMPIRWl«i 

Pour tenir compte de la façon dont le 
CPC 464 effectue le scanning du clavier, 
il faut altérer le fichier C10CPM3.EMS 
et remplacer l'octet qui se charge à 
l'adresse T.P.A. &1 EO et qui vaut &C8, 
par la valeur &C9 (code machine du 


CPC n ° iô - Juillet/Août 1988 


25 









RET). A noter que le disque CPM 2.2 
doit contenir aussi : 

• DDT.COM : utilitaire débugger ou 
outil de mise au point en Tangage 
machine 

• SAVE.COM : utilitaire de sauvegarde 
de la T.P.A. sur disque 

- Insérer le disque CPM 2.2 dans le drive 
A : 

- Charger le CPM 

-Taper: FILECOPY C10CPM3.EMS 
<ENTER> 

- Insérer le disque source ESSAI 
<ENTER> 

• Insérer le disque destination CPM 2.2 
<ENTER> 

• En fin de travail, <ENTER> 

UTILISATION DU DDT 

Le disque CPM 2.2 dans le drive A 
charger le CPM et appeler l'utilitaire 
DDT.COM en tapant DDT <ENTER> 

A) DDT <ENTER> 

S'affiche à l'écran 
DDT VERS 2.2 

- Taper IC 10CPM3.EMS <ENTER> ... 
entrée NOM FICHIER A TRAITER 
-Taper R<ENTER> ... lecture du 
FICHIER 

S'affiche à l'écran 
N EXT PC 
6500 100 

-Tajîer S1E0 <ENTER> ... MODIFI¬ 
CATION octet & 1EO 
S'affiche à l'écran 
01 EO C8 

Il faut alors taper C9 à droite de C8,puis 
un point pour sortir du mode modifica¬ 
tion et <ENTER> 

- Taper G0 <ENTER> ... RETOUR AU 
CPM 

Il faut maintenant sauvegarder le nou¬ 
veau fichier ainsi altéré : 

UTILISATION DE SAVE 

A) Taper SAVE 100 C10CPM3.EMS 
<ENTER> 

Ce qui sauvegarde 100 blocs de 256 
octets (25 600 octets en tout), à partir 
de l'adresse &100 sur le disque CPM 
2 . 2 . 

Il suffit alors de retransférer notre fichier 
altéré depuis le disque CPM 2.2 vers le 
disque ESSAI. 

-Taper FILECOPY C10CPM3 
<ENTER> 

- Le disque source étant placé 
<ENTER> 

- Insérer le disque destination ESSAI 
dans le drive A : <ENTER> 

- En fin de travail, insérer le disque CPM 
2.2 <ENTER> 


ATI 

Toujours pour tenir compte des spécifi¬ 
cités du CPC 464, il faut créer un fichier 
exécutable avant tout chargement du 
CPM+ et qui sera nommé MODIF.COM. 
Ce fichier contient du code machine 8080 
et a pour objet de charger la valeur 0 
à l'adresse &FDEF, avant de redonner 
la main au CPM. 

Ce fichier sera d'abord créé sur le dis¬ 
que CPM 2.2 par l'utilitaire DDT.COM 
puis il sera transféré sur le disque ESSAI. 

- Insérer le disque CPM 2.2 

- Charger le CPM 

- Appeler le DDT <ENTER> 

- Taper A100 <ENTER> ... Création 
code objet à partir de &100 

- Taper le programme : 

XRA A <ENTER> ... En Z80 : XOR A 
STA OFDEF <ENTER> ... : LD 
(&0FDEF), A 

JMP 0 <ENTER> ... ; JP 0 

- Taper CTRL C 

- Taper SAVE 1 MODIF.COM 
<ENTER> 

Ce ciui sauve notre fichier MODIF.COM 
(1 bloc de 256 octets) sur disque. 

Maintenant transférons MODIF.COM 
sur le disque ESSAI 

- Insérer le disque CPM 2.2 

- Charger le CPM 

-Taper: FILECOPY MODIF.COM 
<ENTER> 

- Le disque source est en place 
<ENTER> 

- Insérer le disque destination ESSAI 
<ENTER> 

- En fin de travail, insérer le disque CPM 
2.2 <ENTER> 


<ENTER> 

PRINT#9, CHR$(26) <ENTER> 
CLOSEOUT <ENTER> 

Vous pouvez maintenant, le disque 
ESSAI étant dans le drive A :, charger 
le CPM+ altéré, modèle 464. 

En tapant ICPM, vous devez obtenir le 
message : 

CP/M Plus Amstrad Consumer Electronics 

V}.0, 61K TPA, 1 dise drive 

Par la suite, faites des recopies physi¬ 
ques de ce disque si vous voulez travail¬ 
ler sous CPM + . 

EXEMPLE : MULTIPLAN DE 
MICROSOFT 

Nous allons vous indiquer comment pro¬ 
céder pour obtenir, dès le chargement de 
CPM+ altéré, une entrée automatique 
dans ce logiciel. 

1 ) Prendre une copie physique du dis¬ 
que ESSAI nommée ESSA11 

Si vous avez un système à 2 drives : 

- Insérer le disque CPM 2.2 dans A 

- Insérer le disque ESSA11 dans B (dis¬ 
que vierge non formaté ou format V) 

- Charger le CPM 

- Taper : COPYDISC <ENTER> 

- Insérer dans A : le disque ESSAI 
<ENTER> 

- A la fin de la copie, insérer dans A : 
le disque CPM 2.2 et <ENTER> 

2) Effacer sur le disque ESSA11 le 
fichier PROFILE.SUB 

3) Créer sur le disque ESSA11 le nou¬ 
veau fichier PROFILE.SUB 


Un DIR de notre disque ESSAI doit 
donner : 

C10CPM3.EMS 25K 
MODIF.COM 1K 
SETKEYS.COM 2K 
SUBMIT.COM 2K 
KEYS.CCP 1K 

Pour charger le CPM+ modifié, il con¬ 
vient de créer sur le disque ESSAI un 
fichier PROFILE.SUB (équivalent à 
AUTOEXEC.BAT sous MS-DOS), 
contenant : 

MODIF 

SETKEYS KEYS.CCP 

Comment procéder ? 

Retourner sous BASIC AMSDOS, insé¬ 
rer le di^ue ESSAI dans A : et, à défaut 
d'un traitement de texte, taper en mode 
DIRECT : 

OPENOUT"PROFILE.SUB" <ENTER> 
PRINT#9, "MODIF" <ENTER> 
PRINT#9, "SETKEYS KEYS.CCP" 


En mode direct, sous BASIC, tapez : 

OPENOUT"PROFILE.SUB" <ENTER> 
PRINT#9, "MODIF"<ENTER>. 
PRINT#9, "SETKEYS 

KEYS.128"<ENTER> 

PRINT#9, "MP"<ENTER>. 
PRINTiif9,CHR$(26)<ENTER>.(Code 
End Of File) 

CLOSEOUT<ENTER>. 

4) . Charger sur le disque ESSA11 les 6 
fichiers AAULTIPLAN 6128 : 

MP.HLP 

MP.COM 

MP80 

MP.COD 

MP80.ASC 

KEYS.128 

5) Lancer MULTIPLAN par ICPM 

Quel que soit le logiciel tournant sous 
CPM+ avec votre Amstrad CPC 464 
muni d'une extension 64K RAM, vous 
utiliserez toujours les principes ci-dessus 
définis. Bon courage !• 


26 


CPC n” 36- Juillet/A oût 1988 











Pascal Maclou de Nevers s'étonne 
de ne pas trouver au menu des dis¬ 
quettes CPC certains programmes 
pourtant publiés. 


S i tous les programmes ne figu¬ 
rent pas au menu des disquet¬ 
tes, la plupart s’y trouvent pourtant. 
11 suffit de demander un catalogue par 
CAT pour voir s’afficher la liste com¬ 
plète des fichiers présents. Vous ne 
trouverez pas les programmes de la 
rubrique “Trucs et Astuces” ni cer¬ 
tains petits programmes utilisés dans 
les articles en exemples. Ces program¬ 
mes étant généralement très courts, il 
est rapide et parfois préférable de les 
saisir soi-même. Si certains program¬ 
mes sont absents du menu, c’est sou¬ 
vent parce qu’ils ne constituent qu’une 
partie d’un jeu ou d’un utilitaire que 
nous avons dû, de part leur longueur, 
publier sur plusieurs numéros. 

Cette remarque au sujet de l’utilisa¬ 
tion de CAT, significative de ce que 
de nombreux lecteurs sont des néo¬ 
phytes, nous amène à conseiller aux 
débutants de prendre connaissance 
avant toute autre chose (avant le 
BASIC notamment) des commandes 
de l’AMSDOS. AMSDOS est le 
système d’exploitation de votre CPC 
sans lequel celui-ci ne serait qu’une 
masse de matière plastique inutilisa¬ 
ble. C’est le langage de communica¬ 
tion élémentaire du CPC. Il est néces¬ 
saire de le maîtriser avant de passer à 
autre chose. Ces commandes n’étant 
vraiment pas nombreuses, on ne peut 
pas considérer leur apprentissage 
comme contraignant. En outre, cette 
connaissance d’AMSDOS permettra 
d’apprendre très facilement l’autre 
système d’exploitation livré avec la 


COURRIER 

DES^B 

LECTEURS 


DISQUEHES CPC 


BILLARD AMERICAIN 


Paul Vernier de Saintes demande si 
le programme Billard Américain ne 
comporterait pas des erreurs. 

f orsqu’un programme de CPC 
ne tourne pas, plusieurs rai¬ 
sons à cela. Ou bien la saisie a été mal 
effectuée - parfois même lorsque le 
programme anti-erreurs, qui n’est pas 
infaillible mais fait bien son travail 
dans la majorité des cas, ne détecte 
pas d’erreur - , ou bien la procédure 
de sauvegarde et de lancement n’a pas 
été conforme aux indications fournies 
ou bien la liste publiée comporte des 
erreurs, ce qui est le cas de Billard 
Américain. Ces erreurs dans la liste 
publiée peuvent se produire lorsque 
nous possédons plusieurs versions 
d’un même programme, bonnes et 
mauvaises (les auteurs se trompent 
parfois !) et que nous sortons sur 
imprimante la mauvaise version.. 
D’autres erreurs proviennent d’une 
insuffisance dans les tests, notamment 


dans le cas de programmes complexes 
qui ne provoqueront une erreur 
qu’après une longue utilisation. 

En tout état de cause, la meilleure 
chose à faire quand vous avez un 
doute, c’est-à-dire lorsque vous avez 
effectué des vérifications avec anti¬ 
erreurs puis à la main, c’est de vous 
connecter sur minitel à notre serveur 
MHZ par le 36 15 où des menus vous 
dirigeront vers la rubrique Calamités. 

Si vous ne possédez pas de minitel, les 
PTT en tiennent à votre disposition, 
dans les bureaux de poste, que vous 
pouvez consulter sur place. Il est évi¬ 
dent que les calamités ne seront pas 
signalées au lendemain de la parution 
en kiosque de votre revue préférée. 

Attendez un peu, une semaine suffit 
généralement, ou plutôt, ouvrez une 
BAL (boîte aux lettres) dans le serveur 
et communiquez vos remarques avec 
précision. Nous consultons les BAL 
quotidiennement. C’est beaucoup plus 
rapide que le courrier qu’il est préfé¬ 
rable d’utiliser pour les cas les plus 
épineux où les communications plus 
longues, c’est plus facile d’accès que 
le téléphone. 


28 


CPC n” 36- Juillet/Août 1988 










machine : CP/M. Et la puissance de 
ce système fait que ses utilisateurs 
réguliers travaillent dans des condi¬ 
tions confortables. Le manuel est 
assez clair sur l’emploi de ces deux 
systèmes mais vous pouvez lire, ou 
relire, les articles de Francis Vers- 
cheure. Et, pour revenir aux disquet¬ 
tes CPC dont les fichiers (program¬ 
mes) sont transférables, des comman¬ 
des de copie de ces fichiers sur d’au¬ 
tres disquettes existent dans CP/M et 
sont très puissantes. 11 vous sera alors 
possible de transférer les utilitaires et 
les jeux sur les disquettes correspon¬ 
dantes. 11 arrive, assez souvent, que 
des programmes soient dispersés en 
plusieurs fichiers sur la disquette 
CPC. Pour les regrouper, il est néces¬ 
saire de connaître leur nom. Vous 
trouverez ceux-ci dans les articles 
explicatifs accompagnant les listes. 


CPC AZERTY 


Il arrive que des programmes ne 
tournent pas sur mon CPC AZERTY, 
nous dit Jacqueline Le Moal de 
Quimper. 


f l semble qu’AMSTRAD ait 
raté son adaptation du CPC 
au clavier AZERTY. A la sortie de ces 
appareils, certains programmes de 
jeux plantaient superbement ! A 
l’heure actuelle, il arrive encore quel¬ 
ques problèmes. 

11 .semble que quelque chose se passe 
dans la “traduction” des codes de 
touches. Des exemples ? Nous rece¬ 
vons des programmes sur disquettes 
écrits sur AZERTY ou QWERTY. Ils 
fonctionnent tous indifféremment sur 
QWERTY ou AZERTY. En revan¬ 
che, si nous effectuons une saisie sur 
AZERTY de la liste d’un programme 
écrit sur QWERTY, il arrive que des 
problèmes surviennent. Nous avons 
cerné certains de ces inconvénients, les 
commandes INK ou PAPER par 
exemple, mais nous aimerions en dres¬ 
ser la liste exhaustive pour tenter, dans 
la mesure du possible, de résoudre le 
problème. Aussi lançons-nous un 
appel aux utilisateurs de CPC 
AZERTY et aux utilisateurs-Janus de 
QWERTY/AZERTY pour qu’ils 
nous transmettent le résultat de leurs 
cogitations à ce sujet. Tout le monde 
pourra ensuite en profiter, à commen¬ 
cer par les auteurs de programmes ! 


COMPILATION CPC 


Répondant à une demande pres¬ 
sante et fournie, nous avons publié 
la compilation, en deux tomes, des 
CPC 1 à 4 et des CPC 5 à 8. Loïc 
Hauteville de la Ferté-Gaucher se 
plaint de ne pas y trouver la totalité 
des articles et programmes des CPC 
correspondants. 

f l nous a effectivement fallu 
faire des choix pour ne pas 
gonfler exagérément le volume des 
compilations, ce qui aurait eu pour 
effet d’accroître le coût de ces ouvra¬ 
ges. C’est ainsi que nous avons fait 
une impasse sur CHERRY-PAINT et 
sur quelques autres programmes ou 
articles. Mais l’essentiel est repris. Si 
d’aventure, vous ne trouviez pas le 
programme ou la suite de programme 
que vous désiriez, il vous reste la solu¬ 
tion de lancer un appel par les petites 
annonces dans la revue ou sur le ser¬ 
veur minitel. Il se trouvera toujours un 
lecteur pour vous dépanner. Certains 
lecteurs sont parfois à même de vous 
procurer la collection complète des 
CPC ! 


CPC n°36- Juillet/Août 1988 


29 


















Ne cherchez plus ! MEDOR 
le fait pour vous ! 

Cet utilitaire intéressera plus 
particulièrement les 
bidouilleurs d’octets invétérés. 
Ecrit en langage machine, il 
est très rapide : il examine la 
mémoire et affiche en 
quelques secondes l’adresse du 
mot ou du bloc d’octets que 
vous recherchez. Le même, en 
BASIC, vous laisserait le 
temps de prendre un café et 
de reposer vos yeux de 
programmeur acharné (à 
condition que vous sachiez les 
détacher de l’écran !). Ah, les 
vertus thérapeutiques du 
BASIC ! 


COMMENT ÇA MARCHE ?*|M 

D'abord taper le programme 
MEDOR.BAS et le lancer. Il créera ét 
sauvegardera 2 programmes : 

Le premier en BASIC ; MEDOR qui 
est chargé de lancer. 

Le deuxième en langage machine ; 
MEDOR.BIN. 

Une fois MEDOR et MEDOR.BIN 
créés et sauvegardés, MEDOR.BAS 
devient inutile. 

Deux exemples d'utilisation : 

Tout d'abord RUN" MEDOR 

Exemple 1 : vous recherchez la 
routine système &BD2B dans un 
programme en langage machine. 

1) Sélectionnez l'option BLOC HEXA 
en appuyant sur la barre d'espace¬ 
ment et validez par < ENTER > 

2) Précisez les 2 octets, sans préfixe : 
2B BD (le plus faible d'abord 1) et 
validez par <ENTER> 

3) Définissez dans l'ordre l'adresse 
initiale (4 caractères hexa obligatoi¬ 
rement, commencez par des zéros si 
nécessaire) et l'adresse finale (même 

rocédure) sans valider, 
t la recherche s'effectue. Les 
résultats s'affichent à l'écran et sont 
imprimés (à condition que 
l'imprimante ait été mise en service 
avant l'utisation de MEDOR). 
Exemple 2 : on recherche le mot 
PLAYER dans un jeu en langage 
machine pour le remplacer par 
JOUEUR. 

1) Sélectionnez l'option MOT(S) 
ASCII et validez par <ENTER> 

2) Précisez le mot : PLAYER (en 
majuscules dans ce cas, pensez-y 
avant I) 

3) Procédez ensuite comme dans 
l'exemple précédent. 

ATTENTION. Evitez absolument les 
erreurs de frappe. Afin de limiter la 
taille du programme, les routines de 
contrôle de saisie sont réduites au 
minimum. 


STRUCTURE DU 
PROGRAMME 

Elle est très simple : 

- Choix de l'option MOT(S) ASCII / 
BLOC HEXA 

- Saisie du MOT ou du BLOC 

- Définition de l'adresse initiale 

- Définition de l'adresse finale 

- Recherche en mémoire 

- Fin du programme ou nouvelle 
recherche. 

Les programmeurs en assembleur 
trouveront dans le programme source 
des routines commentées : redéfinition 
de caractères, affichage à l'écran, 
impression, conversion ASCII/Hexa et 
Hexa/ASCII pour des octets à 1 ou 2 
chiffres. 

Le programme est logé dans la 
mémoire écran et scindé en plusieurs 
blocs correspondant chacun à deux 
lignes du bas de l'écran, ceci dans le 
but de libérer le maximum de place 
pour le programme à analyser# 

GAGNER AU LOTO 

un rêve qui peut devenir 
réalité avec 

LOTO - MATIC 

le programmé qui vous révèle 
tout ce que vous devez savoir 
pour : 

• trouver facilement les numéros 
qui ont le plus de chance de sortir 

• établir scientifiquement 
les grilles les plus performantes 
grâce aux tests du Lotoscope 

• contrôler sans peine 
les résultats de vos jeux 
Editions écran et imprimante 

Documentation détaillée 
+ CADEAU contre 4 timbres 

INFORMATIC Applications 

B.P. 78 - 67800 BISCHHEIM 
Tél. 88.33.58.85 


30 


CPC n° 36- Juillet/Août 1988 











<1 


w 0 

i 

0 3 

(• 

3 

• 3 C 


oû->*^ «ex** 


CO 

ttC 


•> c 

3 » 


w 

« 

3 > • 

fi 


fl 

fl 

fi 

0 3 

30 X C £ 0 

— 

oo 


fl 

« 

fl b fl 

— 


fl 

fl 


O • 

flO 4 fl •«>>.' 

0 

—» 


4 


fl II** b 

b 



3 

b 

fl 

O b'£ fi 

O 

4> 



A 

b -fl 0 

Ofl 


3 

0- 

O 

© b 

-C eu 


K 


«» 

M 

3 «- 

e 0 


fl 


fi 

0 3 

0^<0 b 0£ fl fl 

3 

flfl 


0 


U flfl- 4 

•H c 


C 

4 


N w 

Ob • 4 w w 4 O 

O 

fl 


fi 

H 

b C 


X 

• 

— 


V • 

• • U fl — 


flfl 

X 


O 

fl fl fl «A 

fl 3 

4 


— 

fl 

flfl 

«» A 4 b V c c 

fl 

C 

4 

C 

C 

-fl- b b 

flO 

fi 

4 

4 

• 

«-A 

C b fl C b 0 0 

C 

> 4 

6 

3 

•• 

wfl • fl 



b 

fl 


M fl 

• •3 3 C 4-- 

fl 

O b 



fl 

fl 4 C-fl 

flfl 

b 

fl 

fl- 

fl 

U fl U 

fifl O 0 flfl 

s 

• 3 

fl 

• 

C 

£ t- 0 C 

£C 

4 

b 

0»C 

£ 

Z£ 0 

fl c .. fl «• b b 

fl 

0 

w 

U 

U 

U 4 U 4 fl 

U 4 

hi 

fl 

4 A 

b 

w • 

flflflwC3flfl 

fl 

fl U 

0 

1 

*• 

— w —V 

- b 


C 

fl 

— 

o^v 

-V b 1 0 0 > > 

— 

U 



V 

>• fl 

V 3 

© 

4 

flO 

V 

Ob 

4 Ofl C ce 

4 

Ofl 

O 

fl 

b* 

■bA 0 fl- 

V 0 

O 

b 

4 4 

b- 

flb O 

— fl — —00 

b 

U 

O 

fl 

I 

« C CO fl 

4 w 

N 

fl 

Ob 

4 

© 4 C 

flflflflflfluu 

fl 

- 0 

N 

•• 

•• 

— — — — — 

— — 

— 

— 

— 

— 

— — — 

———————— 

— — 

— — 

— 


b b 
b b 

Il II 


3C 
O O 
c 








4 m 

4 


Ifl 






4 

— 

— 


0 



• — 

4 



0. 



44 4 

4 4 

. 

flM 

© 


m c 


fl 

“> U 

M 


X 4 

c 



• X- X 

X X 

A fl © fl 

flO 



fl-A 

fl 

fl 04 

fl 3 

4 


Ofl fl 

- fl 



fl • U Ofl 

fl Ofl 

4 fl fl fl£ 

fl C 

b 


flfl — 

0© 

- c . 

0 0 

©♦•O 

• 

0£ fl 

fl- 0 


© 

-£ 3 fi£ 

©£- fi£ 

0 fl w 

3 • 

O 


c fl© 

fiO 

3-a 

fi O 

«4© 

— 

fl U fi 

fl© c 


C 

3*> 0-- 

OflO-- 

A fi 3 fi- 

Ofl 

S 


-b£0 

• O 

fl V- 

0 »© • 

b4v 

— 

© 0 

bOO • 


O 

• flOb w 

40 fl flb w U 

- O ex© fl 'b 

•fl 



flbO • 

-on 

•b£ 

- --O H 

K4K 

3 

— fl 

V O • — 


an 

• fl 'b fl 

>0 fl -v • • 

£ *-o --flb 

N 4 

Ui 


O 4florfl- 

K 4b. 

£0 4-N C 

• Mfl 

fl 

©O O 

4© 0£ 


•-Nflw444444 

U© fl U • 4 « 

wâ4vMN£04 








4 










« 



U 

fl 


4 


© 

flfl 


fl 

fl flfl 

flfl flfl 

fl 





fl 

fl 

OO 

4© 



flfl 


fl 

^ ^fl«««« 

flfl flflO 

O Ofl 

cc 

« 


o««ooa©fl.<ozzoo©© 

0.4© 

C 

«c O 

««oo 


«©©«C««flflflflO««©««OOZOO©©ZO« 


© 


jOo.JflUO*iOfl 

--flflfln 

•^40 

•-> 

©n J 

OOflfl 


0ü*b0*b00©©©©fl00*^b<0« fl —flflO'^'xflO 


1 






4 


1 — 








1 

— 





4 


H X X 








1 

U 


« 



4 


N fl • 


4 






« 

fl 


— 



4 


1 ££ 


— 






H 

4 


w 



4 


f U U 


w 






Il fl 


3 



4 


■ 0 O 


3 






1 

0 


0 



4 


1 —— 


0 



O 



— - 

fi 


O 



— - 

•• 

--00 


O 



fl 



«> N 

tn 

« - 3- - 

fl ♦ • ♦ 3 

C* I >« #* Il 

•mO IbbiQ^'tf (b 

C« wl C) wt • 


O»- 

ZW tt. 

«oc O 


uN 

^ b* C« 


r K ►-© 
M (uLUjO 





O 

qxo 

OK 

bO 

a© 


b m 

«> fl 

«■H 
Il C'I 

b^X) 

ut*© 

U fl II 
XJfl 

fl 

• *» fl 
-•Cfl 
fl fl 

«> e fl 
c b 

c AT? 

fl 

V fl> 
fl b- 

t3 • 

fl t> fl 

b ax) 


û. c*> 
fi oc 

•« w 0 

U 

-fl a 

usa 

^ fl 

fl >..- 

b «H 

fl fl 3 C 

*> fl O O 

fl c 

• C-- 

•) fl fl fl 


fl a 

b fl c 

Ofl 3 


«> 3 fl 

C & 

fl a fl 

VI b 


AN 

fl© 

fl© 


a. 

— 


b- 




— 


1 




« 






© 

Z 


U 




fl 









— 



« 

©© 


b 




— 


fl 



fi 



— 

O 


X 

1 

«© 


1 

fl4 

fl 


w 


« 



— b 

© 


U 

c 


• 

O 

— 


Z 

-O 

b fl 


fi fl 


© 



b b 


- • 

fl 

• 

N • 

£ 

ce 

©fl 


U 

0© 

fl£ 

— 

^£ 

N 

— 



a ao-fl 

b 

fl£ 

4 

fl 

fl£ 

w 

O 

o« 

O 


4 40 

— U 

4 — 

0 w 

4 4 — 

O 

© 

U 

c fl fi 'fl ' 

o 

© fl w© 

fl 

fl 

© fl U© 

0 

— 

o> 

© 

U 

fl©4 

fl- 

4<X© U 

—— 

O©© V 

Z 

© N© 

© 

— N - A flA 

E 

S fi-0 

0 

4 

N fi-O 

— 

c 

Ui© 

N 

© 


*b 

4«0 3 

-b 

0-0 3 


0^‘NN0 

O 

.O .-fl- 

•• 

— — O *bO 

fi 


— O “bO 

O 


tx 

S 

« 

-flu 

• b 

. -00 

flb 

• -00 

c 

. . . -û 

O 

-Ou£3£ 


• «O flbOn 


N N • 

• O flbOn 

•N 

© 

O 

• 

Z 

£00 

O 4 

O 4«0 

O 4 

04fl0 

© 

£0- flfl 

• 

£« Cw CTw 


£-«0 4«- 

N© C£ 

-•O 4«- 

Nn 

© 

4 


O 










b 






© 

4C 


M 

C 

fl 

AN 

fl 

flW 

9 

fl 

fl 

fl 

© 

fl flfl 



fl flfl 



4 

© 

U. 


fl 

flZ 

fl 

flZ 

O 

fl 

fl 

fl 

W 

fl flfl 



fl flfl 




© 

© 

oooo 

o« 

oo©*^ 

o« 

oo«n 

© 

oooo« 

« 

09©0©Q 

O 

oa«o««© 

©©CQ0«0««©©© 

b 


O 

« 

flflflfl 

flO 

flflOO 

flO 

flflOO 

© 

flflflflO 

O 

flO'^fl'^fl 

9 

flflOflOOO 

*^0*Afl JO fl 000*^0 

© 



1 




4 


1 

9 



1 









1 




© 


1 

b 



• 




N 


© 



f 

— 


— 

— 

(N 

« 

a 


fi 

1 

- O 



O 


>« 



1 

0 


4- 

fl 

— 

1 fl 


— 

1 fl C 



C 


©£ 



I O 


4 w 

C 

w 

I 

3 


b 

N 

« • 



fl 


o« 



1 

< 


03 

O 

3 

1 O 


a 

N 

fl fl 



fl 


OO 



1 

>. 


fl 0 


0 

1 

• 


fi 

N 

3 fl 



fl 



— — 

— 

— — 

« 

— 

-flO 

— — 

O 

— — 

O 

— 

— — 

— — 

O 4 



4 



1 O 


CPCn° 36 - Juillet/Août 1988 


31 












»»«»««««»««>«»»»»»»««««««««I 


• •• •- 


<•<•*• too>r** 
o»»zoc 
rrtà ff*ro » 
X rr X 

*—X X»74l»7 
•- O- - 

• 4 X 


*voor(»c»o>«i*« 
0>»OX9X»C 
frr rrrr» 
rr I 


• ■ 

« c 

c 

OO 


9 1 

» •* 

i» 

ao 


» C 1 

*1 r 

r 

aa 


r 1 

« a 

a 

9< 


• 

« fi 

fi 

■ a 


1 

• M 




1 

» 


9 



« 


X 


rr X 

o«*t<r 

t^O 

Haoo<^oo 

oo n 

a»ao 

a» 

maaaa» 

O 


r 


-«rr rr 

X 

« 

r 

9 

rr rr 

n 

« 


9 


a^' » 

• «•7 

P • 

9 

P P n 

P» n 


C9 


P •*' P 9 

« a X 


**a 

a 

^P P 9 

»« m 

«««^ 

<*• 

M 


oa 

0«0P 

a pk 

O 

7i «iy® 

rc ffl 

» a 

fi 

a 

Pa **p 

*1 Z 

# ** 

N 

O 

K « X 


» 7 


1 

P 7P 

* X 

« •«> 


> 

P 

7 n 

» r 


a 

X 

•- a 

« V 


a 


O 

1» 


r 



» 




a 

» 


O 


n 

» 


> 



« 


H 


1 

« 




1 

• 


O 


1 

» 


Z 



•pnv»»»» ««a* 

. < •V' V 

A <4» -« • ttft 0» 


- fi- 


fi- 

c 1 


c • 

P 1 


P 1 

P 1 


P 1 

r 1 


r 1 

» 1 


tt 1 

• 


• 

■ 


• 

orroooro c 

roooro c 

aooaaaoa c 

O 

aaaoa c 

r rrr r m 


rrr r m 

r rrr r » 


rrr r « 

H 


H 

pa^P9paa 


pfipaa 

-»ppa9'*p9 ® 

Pa9H»9 9 

aN9**- 9 •• 

awa-*. 9 •• 

PP'4 OP9® a 

•* 

»p 9 • a 

(•#»» «-rpp O 

7 

-rp * O 

-P7 -P a 


-P a 

* 9>i m 

«• 

9® m 

a « a » 


a 9 

a 9 

» 

9 

9 n 

a 

n 


P 


a 





Z 

Z 



a 


H 

r 



m 


a 



r 

• 


a 


«•p« 

ap P P n 

*•7 0 

C ^-<0 

P 7 

P 9 

-®< 

9 P ana 

r P 

Ofi - P 

P < •• 

rp Hrt ^ 

9pr 

--fcOP 

P •>- 

• 7 

7 r 

r r— 

rp 

P rpp 

PC 

PP 7 

an 7 

rPC- 

P - 

P r P 

-9 

P a*« 

X 0 

►- P 

»r 

P ^ n 

K 

P '-P 

*a 

P 

« P 

n ap 

• 

P an 

•<M 

^ P -1 0 

1 

P C 

‘ 0 

^Pa 

*n 

0 P 0 0 

Nr 

c 

»- 

nje 

0 ir 

PP 

n P P •• 

rx 

rap a 

< 

- - c 

• N 

X'H'O 

-»-4 

px'pp 

t 

c 7 1 0 

M- «• 

< •*•7 

P 

7 

r 


«>«• 

«•M 

•• «• 

P " 

P *» 

P P 

•40 

•4P 

•47 

•49 

•49 


-9 

•«P 

-P 

" P 

n <4 

n < 

77 

7 

79 

pr 

P - 

P 

P 

P 


P - 

P 

PP 

r*» 

r" 

r 

P 

C 


-P 

P *• 

-c 

9 

pp 

9*» 

an 

-P 

ap 

4 — 

PC 

^ P 

• 1 


c 

aa 

r 

a-* 

OP 


O 

ap 

C 

a 

fflp 

7 

m 

®c 



®p 

9 

9 

a 

0 

r 

m 

a 


m 

*•4 

a 

Z 

Z 

P 


a 


•4 

r 

M 


rn 


a 


0 

r 


ft 

a 


r 

•• 




x(09O«» w^oxnr vi**o3»or 
mcm'vc xz»m*90 xxzm'to 
9 nrn or-H 

r r 

«4rt«t •avNo* »a«NOP 

**0 ^ H* <7 

Ot-4^ «^^(7 

• a ® a 

r • % n P • 

** -a x' 7 X. 

i • 


xopi^orao 

aoaoa 

a 

a 

4,00 

ororfi 

wor t^orrr ••r 

aoo or 

ra 

aooara 

aoor®» 

aaoaaoca 

naoao 

O 

m 

aaa 

aoaoc 

aaoaaooozo 

oc.a ao 

oc 

oaazoc 

oaaoaa 

nrp ®r 

Hao>o 

c 


r 

r r ® 

O 

azr r 

® 

arro 9 

arr rr 

r xr 


•i 


r 

r r ® 


Nr r 

Z 

rr X 

rr 

PP7PPPP 

P P 

Z 


N •*# 

Papa 

7-403 <^»p nyy 

99P 9 P 

99 

7p 7PP 7 

7P 7P-- 

9-4H •4« -49 


m 


- «9 

-4P-49® 

N»*. NM.X- P**» 

n Q H 

n 

-•4P O- - 

«- 40 . 

a • - 4 ^ y 

• P 

9 


a 9 

•4% H- •• 

• X 7 * X- -a • 

C ^ nu 

P 

•4X •«- 

-4* - 

M 7 t- ® 

P ® 



P O 

P9-9Z 

a 4 a 4P n A 

n M. rg 


-P 

— P 

9 0 9 P 

a O 

1 


9 ® 

< 4 # n • O 

P- poa 0 P 

•-9 


9P 

9 P 

7 a 




c 

-P7PC 

94 - cw .4 c a 

®a 


a " 

an 





<• 

9 •-# ®< 

c c - •» n 





9 




a 

a O n 

& r 7 4^ 0 






• P • n 

X790 

.. ,*3 

»•--• < 

• •• 

I -• 


0 

4 

-c< 

fi a4 

M 

7 

— 

1 P 

7 O 

7 


9 

vn 0 « 

P Z» 

0 

P 

P 

P07P 


C 

•• 


P**rC 

P •• 

< 


fl 

4 4 

ra 

N 

— 

P 

P P 

a 

H 

9 

4 

PP 7 

P a 

« 

a 

P 

ra a# 

PC 

7 


n 

n 0 X 

a •< 


n 

r 

7 P P 

pm 

a 

0 

P 

ar 

4 a 

P 

7 

4 

■ P 

P 


r 

P 

7 a 

r O 

4 


r 

O 


7 































195 

= = =: 

=—=—====r=—C0G65 

he>; 

â.=-=- 

200 

DATA 

21,ôv.EF.1Î.D4.Ac.Ol 

.28. 


205 

DATA 

00, ED. BO.l 1.58, EF. CD, 


1173 

210 

DATA 

E7.06.2C.3E.20.CD,SA, 

.BB. 

E5' 

ne. 

DATA 

10.F9.il, 7B,EF.CD,D3, 

.E~. 

1291 

220 

DATA 

06.50.3E.9h,CD.5A.BB, 

,10. 

800 

“r-c 

DATA 

F9.26,00,16,4F,2E.02- 

■ lE. 

466 

230 

DATA 

16,CD,66.BB.CD.ûC.BB, 

,21. 

1049 

235 

DATA 

37,FF.CD,2E,BD,30,04, 

,Zù, 

aso 

240 

DATA 

'Xi. 18,02.36, FF, 2(5,01, 

.2E, 

420 

245 

DATA 

01,CD.75,BB.l1,80.EF, 

,CD. 

1099 

25(i 

DATA 

D3,E7,CD,06,BB.FE,0D. 

.28. 

114- 

"CC 

DATA 

1F.FE,20,20.F5.26.0!, 

,2E. 

o79 

260 

DATA 

01.CD,75.BB.Îi,9F,EF. 

wL'i 

1130 

265 

DATA 

D.3.E7.CD,Û6,BE.FE.0D,CA, 

1309 

270 

DATA 

32,DF,FE.20.28. Cf.IB. 

C2, 

1072 

i-re 

<J 

DATA 

il.BE,EF.CD.DD.E7.CD. 

81. 

1437 

280 

DATA BB,1,(6.00,21,38,FF,CD. 

Oo, 

748 

235 

DATA BB.FE,0D,CA,9E,DF.CD. 

Ci. 

1435 

290 

DATA 

£7.77,23.04.78,32,34. 

FF, 

366 

noc 

TAn 

DATA FE,D0.20,EA,C3.3C.DF. 

00. 

1194 

••V V 

305 

DATA 

18.6C.lS,00,li,3û.F~, 

CD, 

673 

310 

DATA 

DD, E7,CD,81.BB,06,00, 

21. 

1012 

315 

DATA 

38,FF,CD.06,BB,FE,ÔD. 

28. 

1016 

320 

DATA 

55,CD.7F,DF.38.F4,CD. 

Cl. 

1338 

VZ J 

DATA 

E7.CD.E7.E7. CB.27,CB. 

27, 

i-'Ui. 


330 DATA CB.27.CB.27,4F.CD.0t..BB, 961 
-j; DATA CD.7F,DF.38.F3,CD.Cl,E7, 1483 
340 DATA CD,E7,E7.S1,77,04.78,32. 1089 
345 DATA 34.FF,^E,D0,28.26,23,11. 901 
350 DATA 50,F7,CD.D3,E7.1S,C3,CD, 1395 
355 DATA 95,DF.FE,30.38,FE.47,30. 1263 
360 DATA 0/.FE,3A,3S,Ciâ,FE.41.C9, 901 
365 DATA FE,FF,C9.A7,C9,FE,61,DB. 1645 
370 DATA F£.67.D0,D6,20,C9,CD,e4. 1349 
375 DATA BB.11.53,F7,CD,DD.E7.CD. 13?o 
330 DATA 81,BB,CD.CC.DF,ED.53.30, 1316 
385 DATA FF,CD,34.BB,11.69,F7,CD. 1353 
390 DATA DD,E7,CD,81.BB,CD,CC.DF, 1605 
395 DATA ED,53,32.F.11.7D,F7.CD. 1219 
400 DATA DC.E7,18.29.CD.D5.DF,57. 1245 
405 DATA CD.D5,DF.5F.C9.CD.E6.DF, 1595 
410 DATA CB,27,CB.27,CB,27,CB,27, 96E 
415 DATA 4F.CD.E6.DF,B1,C9.CD,06, 1273 
420 DATA BB,CD,7F,DF,38,FS,CD.Ci, 1444 
425 DATA E7.CD.E7,E7,C9,CD,84,BB, 1623 
430 DATA 18,00,2A,30,FF,C3.30,E7. 843 
435 : 

440 DATA 22,35,FF,11.38,FF,3A,34, vgo 
445 DATA FF,47.1A,BE.20.4A,13,23, 702 
450 DATA 10.F8,2A,35,FF,E5,CB.3C, 1106 
455 DATA CB.3C,CB,3C.CB,3C,7C,CD. 1118 
460 DATA BA,E7,CD,C1,E7,E1,E5,7C, 1624 
465 DATA E6.0F,CD,BA,E7,CD,C1,E7, 1496 
470 DATA E1,E5,CB,3D,CB,3D,CB,3D, 1246' 
475 DATA CB.3D,7D,CD,BA,E7,CD,C1, 1409 


'B5 

.DH 

CB 


^Cl 

:.&ï 

:dc 

c: 

■BJ 
DI4 
DH 
■CK 
>Dl 
:E): 
■■■DE 
' EA 
yD 
/ED 
BH 
DL 
■Vb 
.'EÜ 

.r,r 

■DN 
. D2 
DC 

/Cï 

:ec 

,;CH 
;CK 
7DK 
>DY 
>CF 
■ EH 
■DW 
.>DV 
'-DE 
7DH 
■EE 


4gO 

DATA 

E7 

.El 

,E5 

* ' D 

.Et. 

. OF 

, CD 

.BA. 

] 44o 

435 

DATA 

f- 

,CD 

.Cl 

• E7 

T‘ 

.C5 


..Z4. 


490 

DATA 

3E 

.20 

,CD 

.Ci 

f E7 

.10 

,F9 


liSi 

495 

jATh 

2h 

-»c 

1 -Ow* 

.FF 

,23 



.FF 

.• j 

352 

500 

DhTA 

DD 

.CI 

7^ 


r.n pr 

f Lr i/ 1 DP 


» À •. ' • 

1002 

J- ‘W 

DATA 

57 

.7C 

.DD 

.BE 

.M 

i . X 

f 

1 ^ V 

.91 

) i 

« i i « 

■:3i 


DATA 

81 

.F' 

.CD 

.D3 

,E7 

.11 

.B5 

.F7. 

1465 

c:' c 

DATA 

CD 

.DD 

.£- 

.CD 

. 0'6 

.BB 

.FE 

. vU'. 

13": 

520 

DATA 

CA, 

cr, 

. J"*. 

.D" 

rr. 

. L’’ 

.11 

.B5, 

.F9 

. L-l', 

1:57 

525 

DATA 

DO, 

tE7: 

.C6. 

.90 

■^7 

.CE, 40 

-•7 
• 4 . < « 

1142 

530 

DATA 

C9, 

,CD, 

, 5A. 

,BB, 

,F5, 


• 3" 

,FF. 

ÎZ96 

535 

DATA 

FE, 

.9F, 

, 20 , 

.05, 

.Fl, 

.CD, 

.2E, 

,BD, 

1ZZ4 

540 DATA 

C9, 

,F1. 

( U • 1 

,iA, 

■ FE, 

.00, 

.CB. 

,CD, 

1 : 2 s 

545 

DATA 

5A, 

,BB, 

i T 

1 iCi 

,18, 

.F6, 

1 1h. 

,FE, 

,00, 

340 

550 

DATA C6. 

,CD. 

T! 

1 W* 1 

iE7. 

,13. 

1 P 

,9t, 

,Dé. 

l ■-•vi* 

ee-r 

JwJ 

DATA 

30. 

fE, 

i/'» 

( * V- < 

,D8, 

r Ub t 

,07, 

,C9, 

,00. 

7JC 

56(' 

: 











DATA 

OC, 

. ib, 


66, 

•’r- 

, -L, 


3C. 

00. 

i,3r 

570 

DATA 

CF, 

EC. 

ED, 

ED. 

ED. 

ED. 

lH, 

FF. 

1842 

575 

DATA 

Fl, 

wM, 

BA,BB. 

EB.AB, 

23 

FF. 

1320 

580 

DATA 

OF, 

AA, 

BE. 

Bh.BA. 

AA, 

BA, 

FF. 

1310 

535 

DATA 

E7, 

■37, 

B7, 

■37, 

C“r 

‘ • 1 

B7, 

77 

FF, 

1244 

590 

DATA 

18, 

20, 

4C, 

45, 

44 , 

4F. 

C'* 

20. 

4,63 

J 

DATA 

13. 

20. 

72, 

65, 

63, 

63. 



iSv 

600 

DATA 

63, 

66, 

bS. 

20. 

65. 

tE. 

20 . 

LT-. 

Uà,. « 

686 

605 

DATA 

FB. 

6D, 

6F, 

o9. 


t5. 

20 , 

2E, 

Sù9 

610 

DATA 

2E, 

2E. 

00, 

FC, 

FD, 

FE, 

FF, 

F/O, 

1106 

615 

DATA 

OD. 

13. 

20, 

4C, 

4F, 

54, 

28. 

C7 

432 

fc20 

DATA 

29. 

20, 

41. 


43. 

49. 

49 . 

iO. 

466 

625 

DATA 

13. 

20, 

20, 

20 , 

42, 

4C. 

4F. 

43, 

408 


630 DATA 20,48,45,56.41,20.00.OD, 371 
635 DATA 20.4D,4F,54.28,53.29.20, 463 
640 DATA 41.53,43,49.49,20.20.20, 457 
645 DATA 18,20,42,4C,4F.43.20.48, 448 
650 DATA 45,58,41.20.18.00.OD,OA. 301 
o55 DATA OA.4D.4F.54.23.53,29.20. 44o 
660 DATA 41.53,43.49.49.20,28.32. 483 
665 DATA 30,33,20,43.41,.52.2E,4D, 4"3 
670 DATA 41,5S.49,29,3A,20.00.00. 357 


:dh 

>DJ 

EH 

‘,CN 

>DH 

?DF 

>DB 

/EE 

ZF 

>CK 

>CN 

/DP 

)DH 

>DL 

>EF 

>DR 

>EL 


680 DATA OD,OA,OA.42, 43 . 49 , 43 . 20 . 353 
685 DATA 48.45,58.41.20,28,32,-30 , 464 
690 DATA 36,20,4F,43,54,45,54.53, 554 
o95 DATA 20.4D,4i,53.29.3A.20,00, 393 
700 DATA 20,20,00,OD.OA.OA,41.44, 230 
705 DATA 52.45.53,53,45.20.49.48, 569 
710 DATA 49.54.49,41,4C.45,3A,20. 530 
715 DATA 00,ÛD,0A.0A.4i.44.52,45, 317 
720 DATA 53.53,45,20,46,49,4E.41, 553 
725 DATA 4C,45.3A,20.00,OD.'.;»A,OA, 268 
730 DATA 00,OD,OA,OA,4E,4F,55.56. 361 
735 DATA 45,4C,4C.45,20,52,45,43. 540 
740 DATA 48,45,52.43,48,45,3A,20, 521 
745 DATA 16,5B,45.4E,54,45.52,5D, 590 
750 DATA 18,20,53.49,4E,4F,4E,20. 479 
755 DATA 41.55,54,52,45,20,54,4F, 580 
760 DATA 55,43,48.45,O0,0D,0A,0A, 326 


DT 

■'H 

Dt 

■' i-b 

DP 

>L-- 

!■' 

EC 

2i 

;DT 
■ DF 
.DZ 
DF 

/Df 

CD 

■ZE 

'BA 

>E:Z 

■EV 
/DQ 
-BD 
BT 
>Bh 
CH 
D'J 
. BG 
. 5J 
■BC 
, E0 
/BB 
'BB 
>&V 
:>BF 
30 
BP 
BF 
/BR 
,AE 
Ba 
,BR 
/BL 

' L'H 

>BG 

/BP 

/BL 

/BH 

>BC 

>BR 

>BA 

/BF 

/BX 

>BA 

>BW 

>BH 

>BTB 




















I 


T 



I 




I II s’agit d’un utilitaire 
permettant d’accélérer la 
vitesse d’affichage des 
messages à l’écran. 

L’affichage sur Amstrad est 
en effet un peu lent, ceci 
étant dû en grande partie à la 
gestion des fenêtres texte. 
Aussi, ai-je réécrit une routine 
d’affichage beaucoup plus 
rapide. 


SERVEUR 

MINITEL 

N'oubliez pas 



Lo B.A.L. permet un dialogue direct avec 
la rédaction. 

Les petites annonces ouvrent la porte aux 
bonnes affaires ! 


£ e programme a été écrit en 
assembleur. La routine d'affi¬ 
chage peut être utilisée soit dans des pro¬ 
grammes en assembleur, soit en BASIC. 
Un exemple : pour afficher 20 fois le mot 
"BONJOUR" en BASIC Wonc avec la 
routine d'affichage de la ROMj, il faut 
0,3 seconde. Avec ma routine, il ne faut 
plus que 0,12 seconde. On comprendra 
donc aisément l'intérêt d'une telle pos¬ 
sibilité dans des programmes qui affi¬ 
chent en permanence des données à 
l'écran. 

L'activation de la nouvelle routine est 
obtenue grâce à deux nouvelles com¬ 
mandes RSX. L'utilisation est quant à elle 
complètement automatique. Le pro¬ 
gramme est censé n'être utilisé qu'en 
mode 2 ; ce mode n'autorise, en effet, 
ue 2 couleurs. Il n'y a donc pas de test 
e couleur de crayon comme pour le 
mode 0 ou 1 ; c'est là une des explica¬ 
tions de la rapidité d'exécution. D'autre 
part, il ne faut pas que l'écran ait 
"roulé" : c'est-à-dire qu'il y ait eu écri¬ 
ture sur la 26* ligne. 

Une fois le programme machine chargé 
en mémoire à l'adresse 41000, l'activa¬ 
tion des nouvelles commandes RSX se 
fait simplement par un CALL 41000. 
Deux nouvelles RSX sont alors créées. 
RAPID : qui permet un affichage rapide. 
Tout ce qui apparaîtra à l'écran sera 
affiché en mode rapide, sauf les com¬ 
mandes tapées au clavier. Les définitions 
de fenêtres sont quant à elles ignorées. 
Par exemple, si on fait PRINT "BON¬ 
JOUR", le mot "BONJOUR" sera affi¬ 
ché en mode rapide. Le catalogue d'une 
disquette est lui aussi affiché sous ce 
mode. Pour utiliser la commande RAPID, 
il faut être sous mode 2. 

NORM : permet le retour à un affichage 
normal. 

PRINCIPE GENERAL DE FONC¬ 
TIONNEMENT DE LA ROUTINE 

Lorsque la commande RAPID est exécu¬ 
tée, elle détourne le vecteur d'affichage 
(#BB5A) vers la nouvelle routine. A ce 


moment, tout caractère destiné à # BB5A 
contenu dans l'accumulateur) sera uti- 
isé par la routine. Le programme 
distingue : 

- les caractères de contrôle (codes ASCII 
<32), sauf CR (ASCII 13) et LF (ASCII 
10). Si un tel caractère est rencontré, 
alors il est affiché par la routine de la 
ROM. Exemple : si l'on fait un PRINT 
CHR$(7) et que l'on se trouve en mode 
rapide, alors on entendra bien un bip et 
non le caractère n° 7 qui s'affichera. 
Seuls les caractères 10 et 13 sont traités 
par la routine car ceux-ci reviennent 
assez souvent : une chaîne de caractè¬ 
res se termine en effet avec ces deux 
caractères ; ils sont donc traités par la 
nouvelle routine afin d'optimiser encore 
plus la vitesse. 

- les autres caractères (code 
ASCII >31). Dans ce cas, la routine com¬ 
porte en entrée le code ASCII du carac¬ 
tère à afficher dans l'accumulateur. On 
calcule ensuite l'adresse en ROM de la 
définition du caractère à partir de son 
code ASCII. Le programme recherche 
ensuite les coordonnées X et Y du cur¬ 
seur, calcule l'adresse en mémoire vidéo 
correspondant à cette position et affiche 
le caractère à cette adresse. La routine 
augmente ensuite la position du curseur 
d'une position avec vérification et con¬ 
trôle crarrivée en fin de ligne. D'autre 
part, comme la configuration des adres¬ 
ses écran change lorsque l'on écrit sur la 
26* ligne, un test est effectué pour savoir 
si l'on écrit sur cette ligne. Si oui, alors 
la routine émet un bip invitant à taper sur 
une touche pour pouvoir continuer l'écri¬ 
ture, mais après avoir effacé l'écran. 
Je terminerai par un simple test d'exem¬ 
ple : 

FOR 1= 1 TO 100:PRINT "REVUE DES 
CPC";;NEXT 

En affichage normal, le programme 
s'exécute en 2.46 secondes. Avec la nou¬ 
velle routine rapide, il ne met que 0.6 
seconde I 


CPC n° 36- Juillet/Août 1988 


35 




























10 REM-ACCELERATEUR D'AFFICHAGE SOUS MOD >CC • 

E 2- 

20 REM >«E 

30 REM - Fonctions RSX ; RAF'ID : augmente la >AY 
vitesse d'affichage 

40 REM - NORM : retour a la >L!Y 

vitesse normale 

50 REM >MH 

70 REM->TJ 


80 MODE 1:MEM0RY 40999;1=100:LOCATE 10,10!PRlNT"AFficha >RJ 
ge dans" 

90 c=5:F(]R i=41000 TO 41450 STEP 20:L0CATE 24,10:PRINT >WN 
INT(c);"s":c=c-0.2 

91 5=0:F0R k=i TO i+19:READ a$:a=VAL("J!"+a$);s=s-fa:POKE >LH 

k, a:NEXT 

92 READ ctrl$:IF s<>VAL("S("+ctrl$) THEN PRINT"Erreur a >CM 
la ligne ";1:END 

93 1=1+10:NEXT:CALL 40000 >UD 

94 INK 0,0;B0RDER 0;M0DE 2:1RAPID;PRINT TAB(20)"* ACCEL >Blil 
ERATEUR D'AFFICHAGE BOUS MODE 2 ♦" 

95 LOCATE 22,4;PRINT"* ♦ ♦ Réalisé par Frédéric Sol * * >LH 
*'';L0CATE 4,7:PRINT"NOUVELLES COMWNDES RSX DISPONIBLE 

Sr'tLXATE 10,10:PRINT”1RAPID : autorise l'affichage de 
tous les messages en vitesse rapide" 

96 LXATE 10,11:PRINT"1N0RM ; Retour de la vitesse d'a >LD 
ffichage en vitesse normale" 

97 LOCATE 1,20:PRINT' Attention: cette fonction nouvell >0Y 
e n'est valable que sous mode 2, le mode pro. L'ecra 

n ne doit pas rouler (Curseur plus bas que 25 lignes). 

Si un message":PRINT TAB(15);"d'erreur apparait, mettez 
-vous en MODE 2" 

98 PRINT TAB(IO)"Nouvelle limite haute de la mémoire (H >GT 
IHEM) ; ";HIMEM:LOCATE 1,1:END 

100 DATA 21,6D,AO,1,71,AO,CD,D1,BC,21,7C,AO,1,80,AO,CD, >RU 
D1,BC,2A,5B,9D7 

110 DATA BB,22,D3,A0,3A,9,0,FE,82,20,13,21,C8,B1,22,D2, >QA 
A1,21,85,B2,XD 

120 DATA 22,D6,A1,21,C9,B1,22,D8,A1,C9,21,C3,B7,22,D2,A >UP 

l, 21,26,67,22,9EB 

130 DATA D6,A1,21,C4,B7,22,D8,A1,C9,FC,A6,71,AÔ,76,A0,C >X 
3,8A,AO,52,41,BCO 

140 DATA 5ô,49,C4,ô,6D,Aô,SÛ,H0,35,Aô,C3,BA,Hi,4E,4F,52 >RC 
,CD,0,2A,D2,985 

150 DATA A1,7E,FE,2,C2,64,A1,2A,D8,A1,7E,B7,C2,70,A1,23 >TG • 


,7E,B7,C2,70,B1B 

160 DATA A1,3E,C3,32,5A,BB,21,AD,A0,22,5B,BB,C9,E5,D5,C >VF 
5,F5,F3,2A,D6,BBF 

170 DATA A1,FE,A,20,3,C3,53,A1,FE,D,20,A.2A,D6,A1,3E,0, >MJ 
23,77,C3,7F4 

180 DATA 5F,A1,FE,20,30,7,F1,C1,D1,E1,CF,0,94,2A,D2,A1, >QU 
7E,FE,2,28,A5F 

190 DATA 9,CD,BA,A1,CD,64,A1,C3,5F,A1,21,0,0,F1,F5,6F,2 >0B 
9,29,29,11,BC8 

200 DATA 0,38,'19,D9,CB,91,ED,49,D9,11.DA,A1,1.B,0,ED,B0 >PY 
,D9,CB,D1,A3C 

210 DATA ED,49,D9,2A,D6,Al,23,7E,2B,6E,67,5C,16,0,62,D5 >TH 
,54,5D,29.29,7FD 

220 DATA 19,29.29,29,29,01,19.EB,2A,D8,Al,TE,23,66,6F,1 >TM 
9,7C,E6,7.67,794 

230 DATA 3E,C0,84,67,1,0.8,3E,8,11,DA,A1,F5,1A,77,F1,3D >L2 
,28,4,9,6AD 

240 DATA 13,18,F5,2A,D6,A1,23,7E,3C,FE,50,28,3,77,18,F, >RP 
AF,77,2B,7E,784 

250 DATA 3C,FE,19,20,5,CD,C6,A1,18,1,77,F1,C1,D1,E1,C9, >RK 
21,75,A1,7E,A1E 

260 DATA B7,C8,CD,5A,BB,23,18,F7,21,98,A1.18.F2,4C,65,2 >UG 
0,73,79,73,74,998 

270 DATA 65,60,65,20,64,6F,69,74,20,65,74,72,65,20,73,6 >TF 
F,75,73,20,6D,74E 

280 DATA 6F,64,65,20,32,A,D,0,4C,27,65,63,72,61,6E,20,6 >NE 

E, 65,20,64,594 

290 DATA 6F,69,74,20,70,61,73,20,61,76,6F,69,72,20,72,6 >RB 

F, 75,6C,65,A,742 

300 DATA D,0,2A,D3,A0,3E,CF,32.5A,BB,22,5B,BB,C9,3E,7,C >QZ 
D,D2,A0,CD,950 

310 DATA 6,BB,CD,6C,BB,C9,C8,B1,0,38,B5,B2,C9,B1,0,0,66 >^E 
,66,66,3E,950 

320 DATA 6,7C,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82 >RZ* 


•COPYRIGHT 1985 MICRO-APPLICftTlüN. 
.DAMS. 


ORG 41000 
ENT ♦ 

LD hlydebutl 
LD bcytabrsxl 
CALL «bcdl 
LD hl,debut2 
LD bc,tabrsx2 
CALL ttbcdl 
LD hl,(«bb5b) 
LD (adrom),hl 
LD a,<9) 

CP «82 
JR nz,c664 


36 


CPC n°36- Juillet/Août 1988 
















; ligne 



LD 

hl«#blc8 


LD 

(mode)«hl 


LD 

hl,«b285 


LD 

(poseur)«hl 


LD 

hl,#blc9 


LD 

RET 

(roll)«hl 

C664 

LD 

hl,#b7c3 


LD 

(mode)«hl 


LD 

hl«•b726 


LD 

(poseur)«hl 


LD 

hl,#b7c4 


LO 

RET 

(roll> «hl 

début 1 

DEFS 

4 

tabrsx1 

DEFM 

noml 


JP 

comml 

noml 

DEFM 

RAPI 


DEFB 

••D"+#80 


DEFB 

0 

debut2 

DEFS 

4 

tabrsx2 

DEFM 

nom2 


JP 

comffl2 

nom2 

DEFM 

NOR 


DEFB 

"M'*+#80 


DEFB 

0 

comml 

LD 

hl«(mode) 


LD 

a« (hl ) 

la 

CP 

2 


JP 

nz «errmod 


LD 

hl«(roi1) 


LD 

a, (hl) 


OR 

a 


JP 

nz «errol1 


INC 

hl 


LD 

a«(hl) 


OR 

a 


JP 

nz «errol1 


LD 

a« 195 


LD 

(#bb5a)«a 


LD 

hl«ici 


LD 

RET 

(«bbSb),hl 

ici 

PUSH 

hl 


PUSH 

de 


PUSH 

bc 


PUSH 

DI 

af 


LD 

hl,(poseur) 


CP 

10 


JR 

nz «paslO 


JP 

augmlig 

paslO 

CP 

13 


JR 

nz ,pasl3 


LD 

hl « (poseur) 


LD 

a«0 


INC 

hl 


LD 

(hl> «a 


JP 

teri 

pasl3 

CP 

32 


JR 

ne «ok 


POP 

af 


POP 

bc 


POP 

de 


POP 

hl 

affmes 

RST 

08 

adrom 

DEFM 0 

□k 

LD 

hl«(mode) 


LD 

a« (hl) 


CP 

2 


JR 

Z,cebon 


CALL comm2 


CALL errmod 


JP 

teri 

cebon 

LD 

hl «0 


POP 

af 


PUSH af 


LD 

1 «a 


ADD 

hl «hl 


ADD 

hl ,hl 


ADD 

hl ,hl 


LD 

de««3800 


ADD 

EXX 

hl «de 


RES 

2,c 


OUT 

EXX 

(c) «c 


LD 

de«bloc 


LD 

bc,8 


LDIR 

EXX 


SET 

2,c 


OUT 

EXX 

(c) «c 


LD 

hl«(poseur] 


INC 

hl 


LD 

a«(hl) 


DEC 

hl 


I colonne«BO' 


I restaure #bb5a 
I a-ffiche message 


; cherche définition du 
$ caractère en ROM et 
I le place en RAM a 1 'adresse 
I bloc 


) colonne 


LD 

LO 

LO 

LD 

LD 

PUSH 

LD 

LD 

ADD 

ADD 

ADD 

ADD 

ADD 

ADD 

ADD 


l,<hl) 
h,a 
e,h 
d,0 
h ,d 
de 

d f h 

hl ,hl 
hl ,hl 
hl «de 
hl «hl 
hl «hl 
hl «hl 
hl «hl 


I calcule l'adresse en mémoire 
I video de la position courante 
I du curseur 


ligne 
augmlig 


pas26 
ter i 


errmod 
g loup 


erroll 
messl 

mess2 

comm2 

efface 


mode 
début 
poseur 
roi 1 
bloc 


POP 

de 

ADD 

hl «de 

EX 

de,hl 

LD 

hl«(roi 1) 

LD 

a«(hl) 

INC 

hl 

LD 

h« (hl) 

LD 

1 *4 

ADD 

hl «de 

LD 

a«h 

AND 

7 

LD 

h,a 

LD 

a«4lcO 

ADD 

a«h 

LO 

h«a 

LD 

bc««aoo 

LD 

a,8 

LD 

de,bloc 

PUSH 

af 

LD 

a,(de) 

LD 

(hl) ,a 

POP 

af 

DEC 

a 

JR 

Z «apres 

ADD 

hl «bc 

INC 

de 

JR 

lire 

LD 

hl« (poseur) 

INC 

hl 

LD 

a«(hl) 

INC 

a 

CP 

80 

JR 

Z «ligne 

LD 

(hl ) «a 

JR 

teri 

XOR 

a 

LD 

(hl)«a 

DEC 

hl 

LD 

a,(hl> 

INC 

a 

CP 

25 

JR 

nz «pas26 

CALL 

efface 

JR 

teri 

LD 

(hl)«a 

POP 

af 

POP 

bc 

POP 

de 

POP 

RET 

hl 

LD 

hl«messl 

LD 

a« (hl) 

OR 

a 

RET 

Z- 

CALL «bbSa 

INC 

hl 

JR 

g loup 

LD 

ht «mess2 

JR 

gl oup 


; hl*adr écran 


; affiche le caractère 


atteint fin de ligne 7 
si oui « increm No ligne 


; 26eme ligne ? 
I bip et cls 


DEFM Le système doit etr 
DEFM e sous mode 2 
DEFB 10,13«0 
DEFM L'écran ne doit pa 
DEFM s avoir roule 
DEFB 10,13«0 


hl« (adrom) 
a«#cf 
(MbbSa)«a 
(«bbSb)«hl 

affmes 

#bb06 

«bb6c 


LD 
LD 
LD 
LD 
RET 
LD 

CALL 
CALL 
CALL 
RET 

DEFS 2 
DEFM «3800 
DEFS 2 
OEFS 2 
DEFS 8 


Text:26869 
' Hmemt 361S3 


End:28769 


1900 Bytes# 


CPC 36- Juillet/Août 1988 


37 









Norbert SYLVESTRE 


ur un plateau de 64 cases, des pions 
de deux types "satellite" ou "trou 
noir"sont dissimulés. Votre mission, si vous 
l'acceptez, est de localiser ces pions grâce 
à des lancers de rayons dont la trajectoire 
est modifiée par les pions sus-nommés. Pour 

que cela ne soit pas trop simple, la trace - 

lumineuse est cachée et le temps limité. Le 
mode d'emploi est contenu dans le 
programme. 


lû FF, OôRhMÜE SATELIT >EA 

20 • >LB 

30 ■ Norbert SILVEoTFE ♦ 24 MAI 1988 >LC 

40 ' >LD 

K' ' Initialisation >LE 

60 ' >LF 

70 BOSUB 4470 ' DeFinition des Syaboles >JD 

80 EVER'Y 50.3 GGSUB 2450: DI * >VP 

90 ' ;lj 

100 ' Menu de début du jeu >RB 

110 ' >RC 

120 INK 0,1:INK 1,26:BORDER 1:MODE 2 >CB 

130 LOCATE 15,1:FRINT"* ♦» JEU SATELIT >DC 
« « ♦" 

140 LOCATE 15,8:PRINT"Voulez vous :" >KT 

150 LOCATE 15,12:PRINT"- Lister les Reqles >MF 

R" 

160 LOCATE 15,15:PRINT‘'- Conmencer le Jeu >LU 

J" 

170 LOCATE 15,18:PRINT"- Sortir du Programme >PL 

S" 


180 LOCATE 20,23:PRINT "Votre choix : M 
190 R$=INKEY$:IF R$="" THEN 190 >XP 
200 IF R$<>"J" AND R$<>"j" AND R$<>"R" AND RJO’r" AND >CL 
R*<>"S" AND Rt<>”s” THEN 190 

210 PRINT R$:F0R 1=1 TO 1000:NEXT I >BQ 
220 IF R$="S'’ OR R$="s" THEN CLS:END >CU 
230 IF R$="R” OR' R$="r" THEN 3740 >YV 
240 CLS:DIM ENTREE(15,1) >TU 

250 LOCATE 10,10:PRINT”NivBau de diFFiculte (1 a 4) : >LE 

«. 

260 R$=INKEYi:IF R$="" THEN 260 >XK 
270 IF VALIRSXl OR VAL(R*)>4 THEN 260 >DR 
280 PRINT R$:F0R 1=1 TO 1000:NEXT I >BY 
290 NIV=VAL(R$) >HF 
300 ' >RD 
310 ' DeFinition de 1 écran >RE 
320 ■ >RF 
330 MODE 0;BORDER 0:JEU=0 >UK 
340 FOR 1=0 TO 15:INK 1,0:NEXT I >YV 


38 


CPC n°36- Juillet/Août 1988 









/, 


360 ' Dessin de l'Ecran 
370 ■ ' 

380 TEMPS=0:TA60FF;FRINT CHR$(23i+CHR$(0)::TAG 
390 FIOT 700.700,13:MOVE 415,396:DRAWR 229,0 


/ 


4Ci0 PLOT 700.700,12;MOVE 415.396:DRAWR 0,-45;DRAWR 229, >ZF 
0 


\ 


410 PLOT 7iX),700,5 
420 FOR 1=0 TO 160 
430 MOVE 66,360-2*1 
440 DRAWF; 336.0 
450 ÆXT î 
460 PLOT 700,700,7 
470 FOR 1=0 TO 8 
430 MOVE 68+42*1,40 
490 DRAWR 0,320 
500 MOVE 66,42+40*1 
510 DRAWR 336,0 
520 NEXT I 
530 PLOT 700,700,2 
540 FOR 1=0 TO 8 
550 MOVE 64+42*1,40 
560 DRAWR 0.320 
570 MOVE 66,40+40*1 
580 DRAWR 336,0 
590 ÆXT I 

600 TAGOFFiPRINT CHR$(23)+CHR$(1);:TAG 
610 FOR î=0 TO 7 


890 MOVE 474.300:PRINT"TEMF5": >lî 

PX) PLOT 700,700.12:MOVE 474.3Iv:DRAWF. 160,0:DRAWR O.-i '^AV 
30 

910 PLOT 700,700,13:MOVE 4T4.310:DRAWF 0.-130:DRAWR 160 .;AW 

.0 

920 PLOT ■'00.900.i3:tiCVE 484.260:DRAWR 140.0:.ORAWR 0.-7 :il 


620 

FOR J=0 TO 7 

■/YJ 

630 

PLOT 700,7iXi,7 

>MH 

640 

MOVE 72+42*i.60+40*j 

>TY 

650 

PRINT CHR$(255): 

>PZ 

660 

PLOT 700,700,2 

>MF 

670 

MOVE 72+42*1,68+40*1 

/TB 

: 680 

PRINT Cm$(253); 

>PA 

( 690 

NEXT J 

>QK 

: 700 NEXT I 

>NF 

•' 710 TAG0FF:PRINT CHR$(23)+CHR$(0);;TAG 

>GC 

720 FOR 1=0 TO 6 

>WA 

730 

MOVE 2,88+40*1 

:>MD 

740 

PRINT CHRt(2û3)+CHR»(207): 

/YN 

750 

MOVE 408,88+40*1 

>NL 

760 

PRINT CHR«(203)+CHRf(207); 

>YQ 

770 

MOVE 94+42*1,38 

>NJ 

780 

PRINT CHRI(201); 

>PV 

790 

MOVE 94+42*1,20 

>NB 

800 

PRINT CHR$(205); 

>PR 

810 

MOVE 94+42*1,398 

>Na 

820 

PRINT CHR$(201); 

■/PP 

830 

MOVE 94+42*1,378 

>NQ 

840 

PRINT (>IR«(205); 

>PW 

850 NEXT I 

/PB 


930 PLOT 700,70)0,12:MOVE 434.260:DRAWR 0.-70:DF.AWF, 140, .;ZZ 
0 

940 PLOT 700.900,6 'LT 

950 FOR 1=0 TO 25 ■DB 

960 MOVE 495.250-2*1 NF 

970 DRAWR 120,0 ZK 

980 NEXT I F*' 

990 PLOT 700,700,2:MOVE 494.14C':?RINT"TE£T": >NH 

iOiOO PLOT 700,700,12:MOVE 4”4, lôO:DRAWR i50,0:DFHl>)R 0.- 'BO 

I*?**! 

1010 PLOT 700,700.13:MOVE 474.160:DRAWR 0,-130:DRAWR la -BR 

0.0 

10)20 PLOT 700'.TOO. 13:MOVE 484. IjO:DRhWF 140,0;DF;AWF. 0.- l-BF 
110 

1030 MOVE ùü.366:DRAWF. O.34;M0VE 0.34:DR.A'WF: üû.O >GZ 

1040 PLOT 700,700,12:myE 434, i50:DRAWR '0.-110:DRAWR 14 BF 

0,0 

l)j50 MOVE Û.36 o:DRAWR o6.0:N0yE 66,0:DRAWR 0.34 ,PD 

1060 TAGOFF:PF:INT CHP$I23;+CHR$(D;;TAG 7HL 

1070 IF NIV>1 THEN NIV1=3 ELSE NÎV1=NIV+1 : JA 

1080 NIV2=NIV+1-N!V1:1=0 >0^ 

1090 WHILE loNIVl )MN 

1100 PLOT 700,700,3:MOVE 500+1*40,110:FRINT Ctf:î(252 ;XV 

i: 

1110 FLOT 70C),7'-Xi, 10:M0VE 5'X'*I*40.110:PRINT CHR$!25 ..-ZX 

Ir, 

1120 i=I+l LA 

1130 WENT) 

1140 1=0 

1150 WHILE I<NrV2 

1160 FLOT 700,7'00,3: MOVE 500+1*40,70:PRINT CHF,ti252) /XC 


860 MOVE 420,390:PRINT CHR$(208)+CHR$(209)+CI«4(212)+CH >BL 
R$ (213) +CHR$ (216) +(HI$ (217) +CHR$ (212) ? 

870 MOVE 420,374;PRINT CHR$(210)+a(R4(211)+CHR«(214)+CH >BK 
R$ (215) +CI«$ (219) +(MI$ (218) +C>IR$ (214) ; 

880 MOVE 17,25;PRINT "C"; >Tr 


1170 PLOT 700.7'00,10:MOVE 500+1*40, “O: PR INT CHRÎi251 >YD 

): 

1180 I=I*l >I-S 

1190 WEND >JF 

1200 PLOT 700,700,10:!10VE 580,7Ô:PRINT CHR$(252); /RB 

1210 PLOT 700,700,6:MOVE 580.70:PRINT CHR$(251); >QM 

1220 PLOT 700,700,7 >MP 

1230 MOVE 504,241:PRINT CHR$(220);:MOVE 504,225:PRINT C >KB 

HR$(221); 

1240 MOVE 544,241;PRINT CHR$(220);:MOVE 544,225:FRINT C ;>KL 
)«9$(221); 

1250 MOVE 584,241:PRINT CHR$(220);:MOVE 584,225:PRINT C >KW 
HR$(221)-, 

1260 X=425;Y=30:PL0T 700,700,3:MOVE X,Y;PRINT CHR$(250) >BH 


1270 INK 0,2:ir#; 1,6:INK 2,24;M 3,26 
1280 INK. 4,18; INK 5,15: INK 6,0: INK 7,4 
1290 INK 8,7:IDK 9,20;INK 10,13;INK 11,17 


>DR 

■>DC 

>FZ 


CPC n° 36- Juillet/Août 1988 


39 




1770 PLOT 700.700,3:M0VE X’/ûPF.INT CHR$(250); /NX 
1780 RETURN >Fk 
1790 ' ,YK 
1800 Entrée Gauche ou Droite ; YB 

1810 ■ iYC 

1820 P0SY=12ei-iNT( rï'-108)/40)*4û ZX 
1830 GOSUB 4380 >XK 
1840 DIrPLOT 700,7C'0.3:M0VE X.?:PF;INT CHR$(250 j: XRD 
1850 PLOT 700,700,COULEUR zUZ 
1860 TAGOFF;PRINT CHR$(23)+CHRt(0 ;'::ThG ..HU 
1870 flOVE POSX,POSV:PRINT CHRÏCCHAR); /HB 
1880 TAGOFF:PRINT CHR$(23)+Clf;:$(l);:TA6 ;HX 
1890 PLOT 700,700,3 >MZ 
1900 MO'Æ X,y:PRINT Cm$(250); /YY 
1910 EI:RY=INT((Y-l08)/40)+2:IF F0SX=34 THEN RX=0 ELSE /DU 
RX=8 

1920 JEU=JEU+i:ENTREE(JEU,0)=FX:ENTREE(JEü.l)=F;Y : i»iZ 
1930 GOSUB 2380:RETURN >rf 
1940 ' ).YG 
1950 ' Position des satellites .-YH 
1960» ■ yyj 
1970 FOR 1=0 TO 1 /CE 
1980 FOR J=0 TO 10 >LW 
1990 RANDOMIZE TIME /QX 
2000 PROSAT(I,J)=RNDtTIME)*l0O MOD 8 >FC 
2010 NEXT J ;^WE 
2020 NEXT I ,>y|c: 
2030 1=1:J=1:SAT(0,0)=FROSAT(0,0):SAT(1,0 )=PROShT( 1,0) >AP 
2040 FOR K=0 TO J-i >LZ 
2050 IF PR0SAT(0,I)=SAT(0,K) AND PROSATd,I)=SAT(1.K >KZ 
) THEN 2090 

2060 NEXT K /VF 
2070 SAT(0,J)=PROSAT(0,I):SAT(1,J)=PROSAT(1,1) )RK 
2080 J=J+1:IF J=NIV+2 THEN 2100 >XD 
2090 I=M: IF I <11 THEN 2040 >UL 
2100 RETURN >EG 
2110 ' >XG 
2120 ' Visualisation des satellites ;XH 

2130 ' >XJ 

2140 FOR 1=0 TO NIV YMP 
2150 X3=72+42»SAT(0,I):Y3=68+40*SAT(1,I) /JA 
2160 TAGOFFtPRINT CHRI(23)+Cm$(0);;TAG >JL 
2170 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143); >RF 
2180 TAGOFF:PRINT CHR$(23)+CHR»(1);;TA6 >JP 
2190 PLOT 700,700,6:M0VE X3,Y3:PRINT CHRf(252); >RK 
2200 PLOT 700,700,15: MOÆ X3,Y3;PR1NT CHR$ (251); >TX 
2210 NEXT I )VA 
2220 X3=72+42*SAT(0,1):Y3=68+40*SAT(1,1) >HT 
2230 TAGOFF:PRINT CHR$(23)+CHR»(0); :TAG >HK 
2240 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143); >0K 
2250 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG >HN 
2260 PLOT 700,700,15:MOVE X3,Y3:PRINT CHR$(252); >RH 
2270 PLOT 700,700,3:M0VE X3,Y3;PRINT CHR*(251); >QL 
2280 RETURN >FF 
2290 ■ >YF 
2300 ' Entrée Haute ou Basse >XH 
2310 ' >XJ 


1300 INK 12.1:INK 13.14: INK 14.9: IN) 15,19 /GC 

1310 COULEUR=-i:GOSUB 4330 >VZ 

1320 TEMF'S=10'.::‘0:FIN=0:JEU=0:B0RDER 1:G0SÜB !940;EI >NV 

POSITION DES SATELLITES 

i3v'V . l'K 

1340 DepiaceiTient du Curseur YA 

1-j 5'.’ YYg 

1360 PLOT 700,700,3:MVT=0 .ly 


1370 TAGOFF:PRINT CHRî(23)-*-CHF:}ii): :TA5:PLGT 700,700,3 >ZF. 
1380 IF CURSJOY=0 THEN G=8:D=l:H=0:B=2:3AI5îE=4’:3CT0 1 >EÛI 


410 

1390 G=74:D=75:H=72:B=73:SAISIE=:’îi /CV 
140(;i IF FIN=1 THEN 2720 ..QH 
1410 IF INkEY(SAI5IE)=0 THEN 1600 ELSE X2=X:f2=t' ' RJ 
1420 IF INKEYi68)=0 THEN TEMP5=0 /AB 
1430 IF INKEV(G)=0 THEN X=X- 8 :MVT=i ';DV 
1440 IF INKEY(D)=0 THEN X=X+e:MVT=l DQ 
1450 IF INKEY(B)=0 THEN Y=y-3:MVT=1 VCi; 


; - ■ ‘ .. ^ .'.v 

1460 IF INKEY(Hi=0 THEN V-!+3:MvT=l mra .-DZ 

1470 IF !fv'T=C‘ *HEN 1560 rflâ /ql 


1480 DI:IF X/S THEN .;=e ' GR 
1490 IF X,-60C THEN X=âOO .RF 
1500 IF Y<20 THEN V'=20 

1510 IF Y>399 THEN Y=3?9 /RH 
1520 IF MVT =1 THEN MVT=0 ELSE 1400 ^ >AB 
1530 TAGOFF:PRINT CHR$(23)«-CHR$(1);:TAG:PLOT 700,700,3 /ZF 
1540 MOVE X2,V2:PRINT CHR$(250); /AF 
1550 MOVE X. Y: PRINT CHRf(250) : : El >60 
1560 GOTO 1400 >me 
1570 ' >yf 
1580 Coramande au curseur >YG 
1590 ' )YH 


1600 IF X<40 AND Y<35 AND INKEY(SAISIE)=0 THEN GOSUB 16 >MP 
80: GOTO 1380 ' CURSEUR;/JOYSTICK 

1610 IF X<65 AND y>70 AND Y<350 AND JEU<15 THEN P05X=34 >MB 

:CHAR=206:GOSUB 1800:G0T0 1380 ENTREE GAUCHE 

1620 IF X/400 AND X<500 AND Y>70 AND Y<350 AND JEU<15 T >DL 

HEN P0SX=408:CHAR=202:GOSUB 1800:GOTO 1380 ' ENTREE DRO 

ITE 

1630 IF X>90 AND X<400 AND Y>360 AND JEU<15 THEN P0SY=3 >PW 
78: CHAR=204:GOSUB 2300:GOTO 1380 ' ENTREE HAUTE 
1640 IF X>90 AND X<400 AND Y<40 AND JEU<15 THEN P0SY=38 >LV 
:CHAR=200:GOSUB 2300:GOTO 1380 ' ENTREE BASSE 
1650 IF X>=65 AND X<=400 AND Y>=40 AND Y<=360 AND INKEY >06 
(SAISIE)=0 THEN GOSUB 3470: IF MOC+HOC<NIV+2 THEN 1380 
ELSE 2720 ' LOCALISATION D'UN SATELLITE 

1660 (30T0 1380 /wr 


1680 ' Curseur / Joystick >yh 
1690 j.yj 
1700 CURSJOY=CURSJOy XOR 1 >wj 
1710 PLOT 700,700,3:MOVE X,Y:PRINT CHR$(250); >NQ 
1720 TAGOFF:PRINT CHR$(7):PRINT CHR$(23)+CHRf(0);:TAG >ZC 
1730 PLOT 700,700,2:MOVE 17,25 >XH 
1740 IF CUR5J0Y=0 THEN Af=''C" ELSE A$=''J’' ;GN 
1750 PRINT At; >75 
1760 TAGOFF:PRINT CHRf (23)+CHRt(l);:TAG >HU 


40 


CPC n'>36- Juillet/Août 1988 











I 2320 P0SX=13à+INT((X-I25)/42)*42 >ZT 
2330 GOSUB 4380 ;XF 
2340 DI:PLOT 700,7!)0,3:MOVE X.v:PRINT CHR$(250); >RZ 
2350 PLOT 700,700,COULEUR >UV 
2360 TA60FF:PRINT CHR$(23)+CHR$(ûi;:TAG >HF 
2370 MQVE P0SX,PQSY:PRTN7 CHR$';CHAR); ;-HX 
2380 TAGOFFrPRINT CHR$(23)+CHR$(r);:TAG >HT 
2390 PLOT 700,700,3 /MV 
2400 MOVE X,r:PRINT CHRt(250); ;A'U 
2410 EI:RX=INT((X-125)/42)+2:IF P0SY=38 THEN RY=0 ELSE ..>DW 
RY=8 

2420 JEU=JEU-fl:ENTREE(JEU.O)=RX:ENTREE(JEU,l)=RY /WV 
12430 GOSUB 2880:RETURN >RB 
2440 ' >YC 
2450 ' Décomptage du chronométré >YD 
2460 ' >YE 
2470 DI:TEMPS=TEMPS-1 >RC 
2480 IF TEMFSCO THEN TEMPS=0 >XM 
2490 TEMFS$=RIGHT$(" "+STR$(TEMPS),3) >FZ 
2500 UNIT$=RIGHT$(TEMPS$,l):DIZ*=MID$(TEMP3t,2,l):CENT$ >AT 
=LEFT$(TEMPS$,1) 

2510 OLDUNIT=UNIT:OLDDIZ=DIZ:OLDCENT=CENT >QZ 
2520 UNIT=VAL(UNIT$):DIZ=VAL(DIZI):CENT=VAL(CENT$) >ZA 
2530 IF OLDCENT=ŒNT THEN 2580 >YU 
2540 PLOT 700,700,6:TAG0FF:PRINT CHR$(23)tCHR$(0);:TAG >20 
2550 MOVE 504,241:PRINT CHR$(143);:MOVE 504,225:PRINT C >KQ 
HR$(143); 

2560 PLOT 700,700,7:TAG0FF:PRINT CHR$(23)+CHR$(1);:TAG >ZV 
2570 MOVE 504,241:PRINT CHR$(220+CENT*2)î:MOVE 504,225: )HN 
PRINT CHRt(220+CENT*2i-l); 

2580 IF OLDDIZ=DIZ THEN 2630 >WG 
2590 PLOT 700,700,6:TAGOFF:FRINT CHR$(23)+CHR$(0);:TAG :ZW 
2600 MOVE 544,24l:PRINT CHR$(l43);:MOVE 544,225:PRINT C >KV 
HRI(l43); 

2610 PLOT 700,700,7:TAGOFF:PRINT CHR$(23)+CHR$(i);:TAG >ZQ 
2620 MOVE 544,24l:PRINT CHR$(220+DI1*2);:MOVE 544,225:P >EC 
RINT CHR$(220+DIZ*2+l)î 

2630 IF OLDUNIT=UNIT THEN 2680 >Yü 
2640 PLOT 7W,700,6:TAGOFF:PRINT C*$(23)+CHR$tO);:TAG 


HR$(143); 

2660 PLOT 700,700,7:TAGQFF:PRINT CHR$(23)+CHR$(l)-,:TAe 
2670 MOVE 584,241:PRINT CHR$(220+UNIT*2);:MOVE 584,225: 
PRINT CHR$(220+UNIT*2+1); 

2680 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG 
2690 IF TEMPS=0 THEN FIN=1 
2700 El:RETURN 
2710 ' 

2720 ’ Fin de la Partie 
2730 ' 

2740 DI:GOSUB 2120:VISU=l:C0ULEUR-0 

2750 MOVE X,Y:PRINT CHR$(250)i 

2760 FOR RAY=1 TO JEU 

2770 RX=ENTREE(RAY,0):RY=ENTREE(RAY,1) 

2780 GOSUB 2940 

2790 NEXT RAY 
2800 DI:TAGOFF 


>B2 


:VISU=0:ERA5E ENTREE:G01 



>GK 

>UN 

>RR 

;-WV 

-KN 

>YK 

àk 

>ZB 

>TR 

>RQ 

>WA 

)PR 

>EH 

>FY 

>EL 

>WV 


2810 IF GAIN=0 THEN LOCATE 14,25:PRINT"DE30LE":G0T0 233 
0 

2820 LOCATE 14,25:PRINT''GAGNE":GAIN=0 
2830 FOR 1=1 TO 2000: ÆXT I 
2840 LOCATE 2,25:PRINT"Appuyer sur RETURN" 

2350 IF INKEY(18)=-1 THEN 2850 
2860 NL0C=0: MLOC'O: GAIN=0: FIN=0 
0 100 
2870 ' 

2880 ' Chemin du Rayon 
2890 ' 

2900 FOR K=80 TO 60 3TEF -2 
2910 SOUND l,i';,2,15.,,l 
2920 NEXT K 
2930 TEMPS=TEMPS-50 
2940 IF RX=0 THEN DX=1:DY=0:6CT0 2980 
2950 IF RX=8 THEN DX=-1:DY=0:50T0 2980 
2960 IF RY=0 THEN DX=0:DY=1:G0T0 2980 
2970 IF RY=3 THEN DX=0:DY=-1 
2980 0LDRX=RX:0LDRY=RY:RX=RX+DX:RY=RY+DY:TR0ü=0:IF VISU >ET 
=1 THEN GOSUB' 3330 

2990 WHILE (RXOO AND RX06 AND RYOO AND RY<>8 AND TRO >DE 
UOl) 

3000 RXl=RX-INT((l+DX)/2)-ABS(DY):RYI=RY-INT((l+DY)/2) 

3010 RX2=RX-INT((l+DX)/2):RY2=RY-INT((l+DY)/2)-ABS(DX) 

3020 FOR 1=0 TO NIV 

3030 IF SAT(0,I)=RX1 AND 5AT(1,I)=RY1 THEN F5AT1=1 

3040 IF 5AT(0,I)=RX2 AND 3AT(1,I)=RY2 THEN F3AT2=1 

3050 NEXT I 

3060 IF F5AT1=1 AND FSAT2=1 THEN FSAT1=0:F3AT2=0:GOTO 3 >CF 
100 

3070 IF F3AT1=1 THEN F5AT1=0;50UND 1,100,2,15,,,1:DX=1->BU 
ABS(DX):DY=ABS(DY)-1 

3080 IF FSAT2=1 THEN FSAT2=0;30UND 1,100,2,15,,,1:DX=AB OBX 
S(DX)-1:DY=1-ABS(DY) 

3090 IF ((SAT(0,NIV+li=RXl AND SAT(1,NIV+1)=RY1) OR. (SA >HK 
T(0,NIV+1)=RX2 AND SAT(1,NIV+1)=RY2)) THEN GOSUB 3420:T 
ROU=1:DX=0:DY=0 


>BH 

>BK 

>MM 

>UX 

>UB 

>VD 


>ZR 

3100 OLDRX=RX:OLDRY=RY:RX=RX+DX:RY=RY+DY 

>PR 

>KJ 

3110 IF FIN=1 THEN GOSJB 3330 

>WA 


' TRACE DU RAYON 


>zw 

3120 WEND 

>JA 

>HE 

3130 IF FIN=1 THEN RETURN 

>UN 


3140 IF TR0U=1 THEN TROU=0:RETUR'N 

>CH 

.^HW 

3150 IF RXOO THEN 3180 

SORTI >QY 

>UX 

E GAUCHE 


>GB 

3160 P0SX=2:P0SY=RY*4O+48:CHAR=202 

>EV 

>YC 

3170 GOSUB 3270:RETURN 

>TQ 

>YD 

3180 IF RX08 THEN 3210 

• SORTI >QD 

>YE 

E DROITE 


>FB 

3190 P0SX=440:POSY=RY*40+4e:CHAR-206 

>GE 

>YC 

3200 GOSUB 3270:RETURN 

>TJ 

>PP 

3210 IF RYOO THEN 3240 

' SORTI >QT 

>LV 

E BASSE 


>CA 

3220 P0SX=RX*42+52:P0SY=20:CHAR=204 

>FZ 

>RB 

3230 GOSUB 3270:RETI^ÎN 

>TM 

>CA 

3240 IF RY08 THEN STOP 

■ SORTI ;rg 


CPC n’" 36- Juillet/Août 1988 


41 




E HAUTE 


3250 

3260 

3270 

3280 

G 

3290 

R)î 

3300 

MOVE 

3310 

3320 



P0SX=RX*42+52:P0SY=398:CHAR=200 
GOSUB 3270;RETURN 

DhPLOT 700,700,3:MOVE X,Y:PRINT CHR$(250); 

SOJND 1,150,2,15: TAGOFF;PRINT CHR$(23)+CHR«(0); ;TA 

PLOT 700,700,COULEUR:MOVE POSX,POSY:PRINT CHR$(CHA 

TAGOFF:PRINT CHR$(23)+CHR${1);;TAG:PL0T 700,700,3: 
X,Y:PRINT CHR$(250); 

EI:RETURN 


Visualisation du Rayon 

TAGOFF:PRINT CHRI(23)+CHR$(0); :TAG 
NEWX=.(RX-1)*42+110 
0LDX=(0LDRX-1)*42+110 
0LDY=(0LDRY-1)*40+82 
NEWY=(RY-i)*40+82 

PLOT 700,700,RAY:DI:MOVE OLDX,OLDY:DRAW NEWX,NE 
RETURN 

FOR K=60 TO 80 STEF' 6 
SOUND l.I,l,15,,,l 
NEXT K 
RETURN _ 


Localisation des Satellites 




3480 


3490 LOCX=INT((X-65)/42):LOCY=INT((Y-40)/40) 

3500 FOR 1=0 TO NIV 

3510 IF SAT(0,I)=L0CX AND SATd,I)=LOCY THEN FLAG=1 

:NLa:=NLOC+l 

3520 NEXT I 


3530 IF SAT(0,NIV+1)=L0CX AND SAT{1,NIV+1)=L0CY THEN FL 
AG=2:ML0C=1 

3540 IF FLAG=0 THEN TEMPS=TEMPS-50:RETURN 

3550 X3=72+42*L0CX:Y3=68+40*L0CY 

3560 SOUND 1,200,2,15:DI:PLOT 700,700,3:MOVE X,Y:PRINT 

CHR$(250); 

3570 TAGOFF:PRINT CHR$(23)+CHR$(0);:TAG 
3580 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143); 

3590 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG 

3600 IF FLAG=2 THEN ENCRE1=15;ENCRE2=3 ELSE ENCRE1=6:EN 

CRE2=15 

3610 PLOT 700,700,ENCRE1:M0VE X3,Y3:PRINT CHR$(252); 

3620 PLOT 700,700,ENCRE2:MOVE X3,Y3:PRINT CHR$(251); 

3630 PLOT 700,700,3:MOVE X,Y:PRINT CHR$(250)i 

3640 TAGOFF:PRINT CHR$(23)+CHR$(0);:TAG:PL0T 700,700,0 

3650 IF FLAG=1 THEN 3670 

3660 MOVE 580,70:PRINT CHR$(143)j:GOTO 3690 

3670 J=INT((NL0C-1)/3):I=NL0C-J*3-1 

3680 MOVE 500+1*40,110-40*3:PRINT CHR$(143)î 

3690 TAGOFF:PRINT CHR$(23)+CHR$(1); :TAG 

3700 FLA6=0:IF NL0C=NIV+1 AND MLX=1 T1€N GAIN=1:FIN=1 

3710 IF FIN=0 THEN El 

3720 RETURN 


>GD 

>Tg 

>RC 

>BQ 

>GW 

>JF 

>FK 

>YA 

>YB 

>YC 

>HP 

>RY 

>W 

>VW 

>RE 

>DR 

>FB 

>RZ 

>RK 

>VJ 


>YG 

>YH 

>NN 

>MC1 

>NX 

>VF 

>PE 

>LT 

>AD 

>LV 

>HU 

>QU 

>HX 

>JU 

>XP 

>XQ 

>NU 

>ZP 

>RE 

>KH 

>DK 

>LA 

>HY 

>ZA 

>PG 

>F 


3730 ' 

3740 ' Réglés du Jeu 
3750 ' 

3760 GOSUB 4290 

3770 PRINT:PRINT" Le jeu se déroulé sur un plateau divi 
se en 64 cases,sur lesquelles" 

3780 PRINT"votre AMSTRAD préféré a dissimule des pions 
(satellites ou trou noir)" 

3790 PRINT" Le nombre de ces pions varie suivant le niv 
eau choisi entre 3 et 6 ." 

3800 PRINT"Mais dans tous les cas,il y aura sur le plat 
eau un trou noir." 

3810 PRINT:PRINT" Pour déterminer la position de ces pi 
ons , vous disposez de 15 rayons" 

3820 PRINT"de couleurs differentes.Pour lancer un rayon 
il suffit de positionner* 

3830 PRINT"la fléché blanche ,a l'aide des touches de d 
irection ou d'un Joystick," 

3840 PRINT"sur un des triangles entourant le plateau et 
d'appuyer sur (ESPACE)." 

3850 PRINT'le triangle prendra la couleur du rayon ,qui 
chemine a l'intersection " 

3860 PRINT’des cases sur le plateau et le point de sort 
ie du plateau est marque " 

3870 PRINT"de la meme couleur.Comme tous les rayons lum 
ineux ,ceux-ci se déplacent" 

3880 PRINT"en ligne droite sauf s ils longent un satell 
ite ou un trou noir ..." 

3890 PRINT:PRINT" En effet ,les satellites ont la curie 
use propriété de réfléchir les rayons" 

3900 PRINT"a angle droit,vers la droite si le rayon Ion 
ge le satellite sur sa droite" 

3910 PRINT"a gauche dans l'autre cas.Par contre ,1e tro 
U noir absorbe tout rayon passant" 

3920 PRINT"a sa portée,d ou son nom." 

3930 GOSUB 4330:GOSUB 4290 

3940 PRINT:PRINT" Bien que le cheminement du rayon soi 
t dissimule au joueur qui ne connait" 

3950 PRINT"que les points de départ et d arrivée,les re 
flexions sur les satellites ou" 

3960 PRINT"!'absorption par un trou noir sont révélés a 
U joueur par un signal sonore." 

3970 PRINT:PRINT" Le joueur connait a chaque instant la 
quantité de rayons qu'il peut " 

3980 PRINT"encore emettre , ce nombre figure en haut et 
a gauche de l'écran ." 

3990 PRINT" De meme, la case TEST, sous le chronométré,re 
présente les satellites" 

4000 PRINT"ou trou noir restant a découvrir ." 

4010 PRINT:PRINT" Malheureusement , le temps imparti po 
ur trouver les pions est limite" 

4020 PRINT"a 1000 secondes et chaque émission de rayon 
réduit ce temps de 50 secondes" 

4030 PRINT"La localisation des pions imposera donc d'ec 
onoffliser son capital-temps." 

4040 PRINT:PRINT" Pour faciliter la recherche , si un p 
ion est localise ,il suffit d'amener" 


>YF 

>YG 

>YH 

>YD 

>UV 

>MB 


>JM 


>XN 

/ZQ 

>QP 


>MH 


>KH 

>PH 

>MG 


>TU 


>HM 


>LC 

>WQ 

>DZ 

>NR 

>UK 

:^jc 

/ZZ 

>ZW 

>YN 


>DV 


>LH 

>DA 

>AU 

>UY 

>UR 

XSL 











4050 PRINT"la Pieche blanche sur la case considérée et /RF 
d'appuyer sur < ESPACE ) pour" 

4060 PRiNT"v'isuali5er le satellite ou le trou noir.En c >Vt 
as d'erreur de localisation " 

4070 PRINT"il vous en coûtera 50 secondes .aussi n'oubl >QE 
162 pas que les retîexions " 

4000 PRINT"c'euvent etre multiples sur le Plateau .Vous >Rf1 
aure: qaqne quand tous les" 

4090 PRIN7"satellites et le trou noir auront ete Visual /EM 
ises." 

4100 GOSUB 4330;G0S'JB 4290 '.UZ 

4110 PRINTiPRINT" Si vous décider d arrêter le jeu ,app ■■vD 
uye: sur la touche < TAB - pour" 

4120 PRINT"visuali 5 er les pions et arrêter le chronomet -BM 
re," 

4130 PRINTiFRINT" Four utiliser le Joystick dans le oep XS 
lacement de la tleche , amener " 

4140 PRINT"celle-ci dans le coin intérieur qauche de 1' /KX 
écran sur la lettre \ C / ” 

4150 PRINT" et appuyé: sur i ESPACE .la lettre . J / ■Vp 
vous indiquera le mode wToystick." 

4160 PRlNT"Dans ce mode,le bouton v FEü / rempiace la t NV 
ouche i ESPACE >.Pour revenir" 

4170 PRINT"âu mode clavier, il vous suffira ce refaire /Li 
la manoeuvre precedente." 

4180 PRINT:PRINT"A la fin de la partie.les pions non de '/LL 
couverts sont visualises" 

4190 FRINT"ainsi que les chemins suivis par les rayons. >VG 

n 

4200 FF:INT:PRINT"N0TA : En considérant les 4 niveaux de '/GB 
difficulté .ainsi que les symétries" 

4210 PRINT" obtenues par rotation du plateau de 90 >XF 
degres ,1e jeu présente 20 81B 980" 

4220 PRINT" combinaisons aifferentes.ae quoi vous /HP 
occuper 2 siècles sans interruption" 

4230 PRINT" en résolvant le problème en 5 minutes. >ZT 
avant de retrouver deux plateaux" 

4240 PRINT" identiques ...Ce qui suppose du temps . NG 
libre et une bonne mémoire 

4250 LOCATE !0,22:PRINT"Bonne Chance dans vocre recherc iiiF 
he 

4260 GOSUB 4330 >Œ 

4270 FOR 1=1 TO lOOOiNEXT I ;UM 

428(1 GOTO 100 ;FA 

4290 MODE 2 /QB 

4300 LOCATE 20.2:PF;INT"R E G L E S DU JEU" >QQ 

4310 LOCATE 2Û,3:PRINT"========================" -TL 

4320 RETURN >FC 

4330 LOCATE 10,25:PRINT"Appuyer sur < ESPACE / pour con IBZ 

tinuer ..." 

4340 R$=INKEYt:IF Rî="" OR RIO" " THEN 4340 
4350 RETURN 
4360 ' 

4370 ■ 


4380 ' Décomptage des Rayons 
4390 ' 

4400 DI:C0ULEUR=C0ULEUR+1;PL0T 700,700,1 ' 



W 


4410 TAGGFFiPRINT CHRI(23.)+CHR$(0) ;:TAG 
4420 MOVE 0,390:PRINT CHR$(32)+CKR$t32': 

4430 MOVE 0,39C:FRÎNT RIGHTIiSTRKlS-COULEüRî .2'; 

4440 TAGOFF:PRINT CHRI(23;+CHR$(1): :TAG 

4450 El:RETURN 

44c.O 

4470 

4480 ' Redéfinition des Symboles 
4490 

4500 SYMBOL AFTER 199 

4510 SYMBOL 200 ,îiO.!<0,S(0,.t;lS.Î..3C.S(7E,ï(FF,4:Ff 
4520 SYMBOL 202 ,5(6,î<E,?(lE,?;3E,5i3E,ilE.LE.t;6 
4530 S'/MBOL 204 ,l(FF,!(FF,S(7E,?(3C,.?(18,î(0,Sc0,i:0 
4540 SYMBOL 206 ,5(CO,ŒO,?(FO,S(F8,î.:FB,&FÛ,S<EO,t(Co 
4550 SYMBOL 201 ..?!0.?<0,S!0,l<18,i24,?(42,.l<81.S-FF 
4560 SYMBOL 203 .8<6,t!A.?<12,&:22,5(22.?<î2.î(A,t'6 
4570 S'^MBOL 205 .?(FF,1(31.3(42,S!24,.UB,S(0,J(0,Î<0 
4580 SYMBOL 207 ,îiCO.?(AO,8(9O,î(8B,?(86,S(90,l-(A0.lxCO 
4590 S'r'MBOL 253 ,2«18,!<24.?(2,&2,!.(2.?!2,2<0,?v0 
4600 SYMBOL 255 ,î/0,.!(0,î40,S<40,«(40.MO,k24.?(ia 
4610 SYMBOL 254 ,S^13.S<3C..Î(7E,1..7E,!(7E,S<7E,.?(3C,Î(18 
4620 SYMBOL 208 ,5<FC,?xFC..1(80.2x80.t(B0,.?(80.?-,FC.«<FC 
4630 SYMBOL 209 ,1<FC,J(FC,1(34,3(84,1(84,484,IfFC.ÎiFC 
4640 SYMBOL 210 ,3(4,M,M.S(4,3(4,M,8«FC,3(FC 
4650 SYMBOL 211 ,3(84,3(84,3(84,3(34,3(84,&84,3(84,.3.84 
4660 SYMBOL 212 ,.^FE,3(FE,3(10,3(10,£,10,«dO.SdO.ldO 
4670 SYMBOL 213 ,3(FC,£:FC.3(80,3(80,5(80,3(30,3(FO,3(FO 
4680 SYMBOL 214 ,£10. S(10.£;10,£:l0,3.10,3(10,^10,3(10 
4690 SYMBOL 215 ,3(B0,3(80,!(80,8(80,S(S0,3(30,c(FC.3(FC 
4700 SYMBOL 216 .8(80,3(80,£80,3(80,3(80,3?B0,£BC‘,3'30 
4710 SYMBOL 217 ,3x10,3..10,3<10,£10.3(10,3(10.3<i0.£10 
4720 SYMBOL 219 .3(30.3(80,3(80,£80,£80.3(80,3(FC,3(FC 
4730 SYMBOL 218 ,£lù,3(10,£10,£!0,£lû.£10,3.10.3;10 
4740 SYMBOL 220 .£FC,£FC,3(S4.3i&4,£e4,£64.£S4.£84 
4750 SYMBOL 222 ,£4,£4. £4. £4,£4, £4,£4,. £4 
4760 SYMBOL 221 .£84,£84,£84.£a4,£S4,£84.£FC,£FC 
4770 SYMBOL 223 ,£4,£4,£4,£4,£4.£4,£4,£4 
4780 SYMBOL 228 ,£84,£84,£84,£84,£84,£84,£84,£FC 
4790 SYMBOL 23^) ,3(FC,£FC,£80,£80,£B0.£80,£80,£FC 
4800 SYMBOL 229 ,£FC,3v4,£4.3(4,3(4,£4,£4,£4 
4810 SYMBOL 231 .£FC,£4,£4,£4,3<4,£4,£FC,£FC 
4820 SYMBOL 224 ,£FC,£FC,£4,£4,£4,£4,£4,£FC 
4830 SYMBOL 226 ,£FC,£FC,£4,£.4, £4,£4,£4.£FC 
4840 SYMBOL 225 ,£FC,£eO,£8O,£8O,£BO,£0O,£FC,£FC 
4850 SYMBOL 227 ,£FC,£4,£4,£4,Î(4,£4,&FC,£FC 
4860 SYMBOL 232 .£FC,£FC,£30,£Bû,£80,£e0,£80,£FC 
4870 SYMBOL 234 ,£FC,£FC,£4,£4,£4,£4,£4,£4 
4880 SYMBOL 233 ,£FC,£B4,£84,£84,£84,£84,3(FC,£FC 
4890 SYMBOL 235 ,£4, £4,£4,£4. £4,£4, £4,£4 
4900 SYMBOL 236 ,£FC,£FC,£B4,£B4,£84,£84,£84,£FC 
4910 SYMBOL 238 ,£FC,£FC,£B4,£84,£34,£e4,£34,£FC 
4920 SYMBOL 237 ,£FC,£84,3(84,£84,£B4,£84,£FC,£FC 
4930 SYMBOL 239 ,£FC,£4,£4,£4,!(4.£4,£FC,£FC 
4940 SYMBOL 250 ,£0,3(7C,£78,£7C,£7E,£5F,£E,£4 
4950 SYMBOL 251 ,£0,£0,£60,£70,£78,£7C,£3C.£1S 
4960 SYMBOL 252 ,£18,£3C,£1E,£E,£6,£2,£0,£0 
4970 RETURN 


'■HM 
3L 
/VP 
HR 
5F 
/Y5 
/■(H 
: YJ 
) iK 
;QA 
'^KL 

/jy 

/kT 

/PF 

/KM 

/JS 

;>KU 

>NL 

-FA 

t:z 

,PE 

>PD 

)PY 

/GV 

/NA 

■NY 

>NX 

>MV 

/NW 

/MA 

/MF: 

YNü 

'MV 

/■NN 

:Eû 

/NR 

>EU 

>Ny 

)NE 

■>FY 

/HD 

/HG 

>JB 

/NE 

>JE 

/NE 

>GG 

>PW 

)EA 

>PF 

)PV 

/PV 

>JG 

>KZ 

>LD 

/HX 

>GD 


CPC n" 36- Juillet/Août 1988 


43 




















Pages 44-54 manquantes? 



PROGRAMMA T lO NBH A V A N C E E 



EATI ON D’IMAGES 



SAISIE DE POINT 
DE VUE A L’ECRAN 



O PARTIE 


Jean-Pierre PETIT 


Jean-Pierre PETiT est directeur de recherche au CNRS. Il est l’auteur d’un logiciel de CAO de 
120 K intitulé AMSTRAD 3D, assorti d’un livre du même nom. Ce programme est riche de 
ficelles de programmation, liées à l’imagerie 3D. Dans cette suite d’articles Jean-Pierre PETIT 
explique au lecteur toutes ces astuces, ce qui lui permettra de construire lui-même son propre 

programme de CAO. 


^^onnons d'abord un M0D1 minimal 
permettant de créer des objets au 
clavier, chaîne par chaîne, ainsi que 
des blocs d’objets. 


1-Créer une image (qui provoque le 
chaînage sur DES). 
a-Objet en mémoire 
b-Saisie écran 


On aura une procédure semblable 
pour le dessin d’un bloc, à la différence 
que le temps de calcul sera plus long. 


COMMENTAIRE 


Donnons maintenant le listing de DES, 
avec sa saisie écran, que nous com¬ 
menterons. 

Avant de commenter le listing DE#16, 
nous allons, à travers quelques illus¬ 
trations, indiquer le but visé. 
Opération préalable maintenant clas¬ 
sique pour créer l’instruction IS- 
CREENCOPY, gérant les pages 
écran présentes sur le second bloc 
de 64 K du 6128 (absent sur un 464) 

RUN”BANKMAN 

puis : 

^ RUN”M0D1 

L’utilisateur crée maintenant un ob¬ 
jet ou charge en mémoire un objet 
déjà créé, puis enchaîne avec : 


On déplace la croix de saisie à l’aide 
des touches fléchées, ce déplacement 
étant démultiplié si on agit à l’aide de 
<Shift> <Touche fléchée>. Validez à 
l’aide de la touche <Return>. On voit 
alors apparaître la figure 2. 

L’utilisateur précise la cote du point 
visé et valide à l’aide de <Return>. 
On passe alors à la saisie des coor¬ 
données du point d’observation. 

Il reste à définir le champ visuel. Sur 
un écran couleur, ce champ apparaîtra 
selon deux traits bleus. On accroît ou 
on réduit ce champ avec les touches 
fléchées <Haut> et <Bas>. 

Après validation par un dernier 
<Retum> l’AMSTRAD débute aussitôt 
le dessin. 



L’option 1-Représenter un objet nous 
envoie dans le sous-programme 
27000 qui nous offre la possibilité de 
créer une image à partir d’un objet 
en mémoire, d’une série d’éléments 
que l’utilisateur définira ou d’une série 
prédéfinie appelée bloc. Ce choix de 
dessin sera mémorisé dans le re¬ 
gistre CD. Puis à la ligne 27180 nous 
définirons le type de saisie. La saisie 
écran, thème de la présente leçon, 
correspondra à CSAISIE = 2 . Cette 
tâche correspondra, comme on le voit 
aux lignes 27330 et 27340, aux sous- 
programmes 35000 et 61000. Les 
lignes qui suivent correspondent à 
l'exploitation des résultats. Les re¬ 
gistres (XG,YG,ZG) contiennent les 
coordonnées du centre de gravité de 


CPC n° 36- Juillet/Août 1988 


55 







l'objet ou de l’ensemble d’objets. XGO, 
YGO, ZGO ne sont, on le voit, que 
de simples intermédiaires de calcul. 
Le résultat de cette saisie écran est 
constitué par les coordonnées écran 
du point M (où se situe; l’observateur) 
et du point G où se situe le point visé. 

Passons au sous-programme 35000. 
En 35010 si on traite un objet unique, 
la routine 44000 est là pour calculer 
les coordonnées du CG et le rayon 
d’encombrement, puis on rejoint la 
ligne 35180. 

Si on traite d’un bloc, les coordonnées 
de son centre de gravité sont calcu¬ 
lées et le résultat est encore stocké 
dans (XG, YG, ZG. R). La double bou¬ 
cle (35180-35240) ou (35160-35250), 
selon qu’il s’agit d’un objet ou d’un 
ensemble d’objets, présente l’objet à 
l’écran, (XE, YE) étant les coordon¬ 
nées écran. 

Nous revenons alors en 27340 qui 
nous envoie en 61000. Il y aura quatre 
appels successifs d’une routine 59000 
qui réalise la saisie d’un point sur 
l’écran, résultat consigné dans (XE, 
YE). Le premier travail est de saisir 
ainsi les coordonnées écran du point 
visé, sur fond de vue en plan de l’objet. 
Une procédure analogue permettra 
de saisir la coordonnée écran de la 
cote du point visé, qui sera consignée 
dans ZGE. Des ISCREENCOPY per¬ 
mettent d’éviter de faire le travail de 
constitution du décor deux fois de suite 
pour le point visé et le point d’obser¬ 
vation. 

En 61200, on trouvera une procédure 
de saisie de l’ouverture angulaire. 
Celle-ci est un peu primitive car elle 
s'effectue sur la vue en plan. Cela 
Ira tant que l’axe de visée sera pro¬ 
che de la direction horizontale, mais 
il est évident qu’on aura des problè¬ 
mes quand on voudra réaliser des 
vues plongeantes ou des contre-plon¬ 
gées, par exemple. 

Pour bien faire les choses, il aurait 
fallu définir cette ouverture angulaire 
sur des plans contenant l’axe de visée, 
dont un plan vertical. Mais ceci au¬ 
rait entraîné un travail de projection 
de l’objet (et surtout du bloc) sur ces 
plans qui aurait introduit un nouveau 
temps de calcul. Cela ne pose pas 
de difficulté a priori. Le lecteur, fin 



Figure de saisie en plan à l'écran. 



i^osit^ion oJb s ex* val; eux* d.a.ns vue en pian 



X 


Figure 3 

Saisie point d'observation en plan. 


56 


CPC n” 36- Juillet/Août 1988 













Figure do.. ■ ■ ^'3<JreS 

vue en plan. 




Figure 7 
Image finale. 


Figure 6 ^gg 


programmeur, pourra faire ce travail 
à titre d'exercice. 

CONCLUSION 

• 

Ce travail est une illustration parfaite 
d’un principe de CAO ; le tout à l’éCTan. 


Si vous commencez à être familiarisé 
avec cette chaîne de traitement 
nommée AMSTRAD-3D, vous verrez 
qu’après avoir découvert le confort 
de la saisie de point de vue à l’écran, 
vous ne voudrez plus saisir ces 
données au clavier* 


CPCn° 36 - Juillet/Août 1988 


57 














"fA r 


MOD 1 # 16 


1 REH «0D1#16 2 MAI 80 >N0 

2 IF FD=1 THEN 230:'* >MK 

3 FD=1: L = - 1:REM Initialiser L (L+1 chaines dans obj >BR 
et ):'♦ 

4 DIM XT(49,12),YT(49,12),2T(49,12),N(49),EL$(2'?),C0(29 >PN 
),GX(29),GY(29),6Z(29),RE(29),XE(12),YE(12),XEBIS(12),Y 
EBIS(12),ST$(20):'* 


i tw 


2050 PRINT EL*(K):'* >MA 

2060 NEXT K :>CG 
2070 FOR TT=0 TO (E+l)*200 : NEXT TTiREM Temporisation >2A 

« 

2999 RETURN: '♦ :>QC 

5000 REM CHARGER UN OBJET:'* >VD 

5010 INPUT"Noffl de l'objet a charger"iEL$(K):EL>=EL$(K): >JE 

'♦ 

5020 OPENIN EL$(K):’* >NB 

5025 INPUTI9,C0(K),BX(K),GY(K),GZ(K),RE(K),L:REM L'obje >VH 
t a (L+1) chaines * 

5030 FOR 1=0 TO L : REM Pour toutes les chaines allant >EQ 
de 0 a L ♦ 

5040 INPUT #9,N(I): REM Nombre de segments sur chaîne ♦ >YY 


10 CLS:'* >UG 
15 PRINT"MENU PRINCIPAL":PRINT:'♦ >CW 
20 PRINT"a-Creer un objet":'* >BN 
30 PRINT"b-Completer un objet”:'♦ >HX 
40 PRINT“c-Stocl<er un objet":'* >EH 
50 PRINT"d-Charger un objet":'* >EB 


60 PRINT"e-Gestion de blocs d'objets":PRINT"F-Bestion d >JW 
U catalogue":PRINT"g-Nanipuler objet ou bloc":PRINT"h-F 


usions diverses":PRINT"i-Exarainer un objet":PRINT"j-Fic 
hier objets standards":PRINT"k-Voir" 

70 PRINT "1-Creer une image":'* >DG 

80 PRINT"m-Plan trois vues":PRINT"n-":PRINT"o-":PRINT"p >NN 

180 PRINT"g-Quitter“:'* >VM 

192 LOCATE 30,2 : PRINT"AMSTRAD-3D" >CN 

193 LOCATE 31,4 :PRINT"J.P.PETIT" >BP 

195 IF EL$ O -" TÆN LOCATE 22,21:PRINT"fflijet résident >MK 

LOCATE 22,23:PRINT EL$:'* 

197 IF LO-1 THEN LOCATE 31,23:PRINT L+1;" ch.":'* >Q2 

198 LOCATE 3,22 >YC 

200 GOSUB 65000: REM Saisie caractère:'* >FP 

205 IF C=ll THEN CHAIN"V0IR#16":'* >2E 

210 IF C=17 THEN END:'* >NX 

220 IF C = 12 OR C=13 THEN CHAIN"DESil6":'* >EH 

230 ON C GOSUB 9000,9010,8000,5000,21000,22000,64000,6 >FP 
4000,10000,20000: REM etc.... 

999 !ERA,"*.bak":CLS:G0T0 10:REM Boucle MENU* >QH 

1000 REM CREER UN BLOC * >RP 

1010 CLS : PRINT"CREER BLX D'OBJETS":PRINT:'* >QE 

1020 INPUT"Noffl du bloc “;BL$:'* >BR 

1030 IhPUT"Nombre d'elements ";E:'* >HN 

1040 E=E-1: '* >QK 

1050 FOR K=0 TO E:'* >LJ 

1060 PRINT"Objet numéro ";K+1:'* >DM 

1070 INPUT EL$(K):G0SUB 5020:REM Charger objet * >RB 

1090 NEXT K :'* >CJ 

1100 GOSUB 6000:REM Stockage Fichier-bloc * >LG 

1999 RETURN :'* >QC 

2000 REM LECTURE BLOC * >RH 

2010 CLS : PRINT'LECTURE BLK":PRINT;'* >GV 

2020 GOSUB 31000 >CE 

2035 PRINT'Bloc ■;BL»:PRINT:'* >ZM 

2040 FOR K=0 TO E:'* >LJ 


5050 FOR J=0 TO N(I):REM Pour tous les points de la cha >CN 


ine d'indice I * 

5060 INPUT #9,XT(I,J),YT(I,J),2T<I,J):'* >GZ 
5070 NEXT J:NEXT I:'* >hW 
5080 CLOSEIN:'* >VE 

5999 RETURN:’* >(y 

6000 REM STOCKAGE BLOC * >RC 
6005 PRINT"Je stocke le bloc ")BL»:'* >JW 
6010 OPENOUT BL$:'* >MB 
6020 PRINT #9,E:'* >GA 
6030 FOR K=0 TO E:'* >LM 
6040 PRINT #9,EL»(K):'* >PZ 
6050 PRINT #9,C0(K):'* >NY 
6060 PRINT #9,GX(K):'* >PE 
6070 PRINT #9,GY(K):'* >PG 
6080 PRINT #9,G2(K):'* >PJ 
6090 PRINT #9,RE(K):'* >NH 
6100 NEXT K:'* >CE 
6110 aOSEOUT:'* >GA 

6999 RETURN:'* >QG 

7000 REM CHARGEMENT FICHIER BLOC * >BF 
7005 PRINT"Je charge le bloc ";BL»:'* >JN 
7007 ON ERROR GOTO 45000 >RE 
7010 OPENIN BL»:'* >LN 
7020 INPUT #9,E :'* >BF 
7030 FOR K=0 TO E:'* >LN 
7040 INPUT #9,EL$(K):'* >PD 
7050 INPUT #9,C0(K):'* >NC 
7060 INPUT i9,GX(K):'* >PJ 
7070 INPUT #9,GY(K):'* >PL 
7080 INPUT i9,G2(K):'* >PN 
7090 INPUT #9,RE(K):‘* >PD 
7100 NEXT K:'* >CF 
7110 CLOSEIN:'* >VA 

7999 RETURN:'* >QH 

8000 REH STOCKAGE OBJET >TQ 
8010 INPUT-Ncjm de l'objet a stocker";EL»:EL»(K) =EL$ >EL 
8015 GOSUB 44000:REM CALCUL GX,GY,62,RE >HR 
8020 OPENOUT EL»(K) >NH 


8025 PRINT #9,C0(K),6X(K),GY(K),GZ(K),RE(K),L:REM L’OBJ >WR 
ET A (L+1) CHAINES 

8030 FOR 1=0 TO L: REM Pour toutes les chaines allant d >DY 


<► 


â 


58 


CPC n” 36- Juillet/Août 1988 



e 0 a L 

8040 PRINT i9,N(I):REM Nombre de segments sur chaîne >XW 
8050 FOR J=0 TO N(I): REM Pour tous les points de la ch >DR 
aine d'indice I 

8060 PRINT #9,XT<I,J),YT(I, J),ZT(I,J) >FP 
8070 NEXT J;NEXT I >MX 
8080 CLOSEOUT >ZG 

8999 RETURN >HJ 

9000 REM CREER UN OBJET >RT 
9005 L=-1;K=K+1:EL$(K)=“";EL$="" >ZP 
9010 CLSiPRINT'CREER UN OBJET";PRINT >HN 
9020 PRINT"a-Creer chaîne par chaîne" >PL 
9030 PRINT"b-Oboet de révolution" >KY 
9040 PRINT"c-Travailler sur un objet standard" >EV 
9050 PRINT"d-Creer un prisme" >DY 
9060 PRINT"e-Creer un cercle" >DN 
9070 PRINT"F-Creer un arc de cercle" >MX 
9090 GOSUB 65000; REM Saisie caractère >FQ 
9100 IF 07 OR C =-51 THEN 9999 >VU 
9102 IF C<0 THEN 9000 >NR 
9110 ON C GOSUB 26000; REM, etc.... >AL 

9999 RETURN >HK 

10000 REM DETAIL D'UN OBJET >ML 
10999 RETURN >PA 
21000 REM GESTION DE BLOCS D'OBJETS* >WJ 
21010 CLS ;PRINT"GESTION DE BLOCS D'OBJETS";PRINT;'» >YZ 
21020 PRINT*a-Creer un bloc d'objets";'* >PY 
21030 PRINT"b-Charger et lire un Fichier bloc" >CH 
21040 PRINT"c-Degrais5er un bloc";'* >KX 
21050 PRINT"d-Detruire un bloc";'* >GN 
21060 PRINT"e-Copier ensemble standard";'* >UG 
21070 PRINT"F-Copier un bloc et ses éléments";'* >CU 
21080 PRINT"g-Detruire bloc+objets";'* >NL 
21090 PRINT"h-Compacter un bloc":'* >JN 
21100 PRINT"i-Fusion blocs" >BZ 
21110 GOSUB 65000;'* >LZ 
21130 IF 09 OR C < 0 THEN 21999 >VZ 
21135 IF C=9 THEN C=8 : CHAIN"M0D2 >ZZ 
21140 ON C GOSUB 1000,2000,28000,29000,27000,4000,3000, >BC 
42000 

21999 RETURN >PC 
26000 REM CREER DES CHAINES AU CLAVIER >FB 
26010 IF L=49 THEN PRINT"Trop de chaînes,désolé...":GOS >GP 
UB 65020;GOTO 26999 

26020 L=L+1; REM Incrementer eFFectiF de chaînes >TU 
26025 CLS: PRINT"SAISIE CHAINES AU CLAVIER";PRINT >XR 
26030 INPUT"Nonbre de segments "jNlD >HW 
26035 IF N(L)>12 THEN PRINT "12 segments maxi !" : GOSU >ZH 
B 65020;GOTO 26025 

26040 FOR J=0 TO N(L): REM Boucle de saisie de coordonn >JH 
ees point 


4 C = 15 THEN 26025 

26130 PRINT" Une autre chaîne ?":G0SUB 65020: I >XM 

F C = 15 TÆN 26010 ' 

26999 RETURN >PH 

30000 'IDENTIFICATION OBJET >CJ 

30002 IF L O -1 AND EL$ ="" THEN PRINT"Objet sans n >GT 
oro présent en memoire":PRINT:PRINT"On garde ?“:G0SUB 65 
020;IF C = 15 THEN 30999 

30010 IF EL$ O "" Tf€N PRINT"Objet résident ";EL$ >DZ 
;PRINT:PRINT“On garde ?"; GOSUB 65020 


30020 IF ELi O "" AND C = 15 THEN 30999 >BE 

30040 GOSUB 5010 >CH 

30999 RETURN >PC 

31000 'IDENTIFICATION BLX >CK 

31010 IF BL$ O "" THEN PRINT"Bloc résident ";BL$;PRINT >YU 
:PRINT"0n garde ?":G0SUB 65020 

31030 IF BL$ O AND C= 15 THEN 31999 >AK 

31040 PRINT;INPUT"Nom du bloc ";BL$:G0T0 7000 >TB 

31999 RETURN >PD 

44000 REM CALCUL DE GX,GY,GZ et de RE * >DB 

44999 œTURN: '* >XJ 

45000 REM ERREUR SUR BLX >UK 

45999 SOIWD 1,20:CLS:PRINT"Bloc inexistant.. ";F0R TT=0 >LZ 
TO 1000:NEXT : RESUME 10 

64000 REM CHAINAGE SUR M0D2 >VP 

64999 CHAIN"M0D"#16 >NA 

65000 REM Saisie caractère* >WT 

65010 PRINT:PRINT"Votre choix :":'* >GF 

65020 C$=INKEY»:IF C$="" THEN 65020:'* >BB 

65030 C=AX(Ci):'* >EK 

65040 IF 096 THEN C=C-96:XT0 65535: '* >DK 

65050 IF C<96 THEN C=C-64;'* >TB 

65535 RETURN: '* >lil 


DES # 16 



1 REM DES#16 4 mai 88 >MY 

2 IF FD=1 THEN 230;'* >MK 
5 SOIWD 1,20: CLS:PRINT"Pas d'accès direct a DES";PRINT >TM 
;PRINT"Je vous renvois sur M0Dl...";RUN"modl#16":'* 


10 aS: '* >UG 

15 PRINT"MENU PRINCIPAL":PRINT;'* >Clil 


20 PRINT"a-Creer un objet";'* >BN 
30 PRINT"b-Completer un objet";'» >HX 
40 PRINT"c-Stocker un objet";'* >EH 
50 PRINT"d-Charger un objet":'* >EB 


60 PRINT"e-Gestion de blocs d'objets":PRINi;F-Ge5tion d >JW 
U 'catalogue";PRINT"g-Manipuler objet ou bloc":PRINT"h-F 


26050 PRINT"Point numéro "jJ+l >DE 
26060 INPUT"XT=";XT(L,J) >UK 
26070 INPUT"YT="jYT(L,J) >UN 
26080 INPUT"ZT="îZT(L,J) >UR 
26090 NEXT J >CB 


26100 PRINT" Une erreur ?";60SUB 65020;IF >TG 


usions diverses";PRINT"i-Examiner un objet":PRINT"j-Fic 
hier objets standards":PRINT"k-Voir" 

70 PRINT "1-Creer une image":'* >DG 

80 PRINT"m-Plan trois vuB5":PRINT"n-";PRINT"o-";PRINT"p >PF 
-";'* 

♦ 180 PRINT"q-Quitter";'* >VM 


CPC Juillet/Août 1988 


59 



192 LOCATE 30,2 ; PRINT"AMSTRAD-3D" 

193 LOCATE 31,4 :PRINT"J.P.PETIT" 

195 IF EL$ <> "" THEN LOCATE 22,21;PRINT"Objet résident 
■••LOCATE 22,23:PRINT EL$:'* 

197 IF LO-1 THEN LOCATE 31,23:PRINT L+1;" 

198 LOCATE 3,22:'* 

200 G0SU6 65000: REM Saisie caractère * 

205 IF C =11 THEN CHAIN"V0IR#16":'♦ 

210 IF C=17 THEN END:'* 

220 IF C<1 OR 017 THEN 10: '* 

225 IF C = 16 THEN GOSUB 17000:GOTO 10:'♦ 

230 ON C GOSUB 64000,64000,64000,5000,64000,64000,6300 

0,63000,60000,64000,60000,27000,34000 

240 !ERA,“*.BAK":'* 

999 GOTO 10 

3000 REM DESSIN ELEVATION POUR SAISIE Z 
3005 aS:PRINT*ELEVATION" 

3010 IF CD=1 THEN 3030 
3020 FOR K = 0 TO E 
3025 FI=1:GOSUB 5020 
3030 FOR I = 0 TO L 
3040 FOR J = 0 TO N(I) 

3050 XE=30(H(XT(I,J)-X6)*30/R 
3060 yE=200+(ZT(I,J)-ZG)*30/R 
3070 IF J=0 THEN MOVE XE,YE 
3080 IF J>0 THEN DRAW XE,YE,1 
3090 NEXT J : NEXT I 
3100 IF CD=1 THEN 3120 
3110 NEXT K 

3120 XE=XGE;MOVE XE,0:DRAW XE,499,2,1:«)VE 0,0,1,0 
3130 YE=0 

3999 RETURN 

4000 REM SAISIE (VERTICALE) POINT SUR ECRAN 
4020 YE=10;G0Slffi 36000 

4030 CC$=INKEY$:IF CC$=*" THEN 4030 

4040 CC = ASC(CCS) :GOSUB 37000 : REM EFFACER CROIX 

4090 IF CC = 240 TÆN YE=YE+10 

4100 IF CC = 244 THEN YE=YE+50 

4110 IF CC = 241 THEN YE=YE-10 

4120 IF CC = 245 THEN YE=YE-50 

4130 GOSUB 36000 : REM TRACE CROIX 

4140 IF CC O 13 AND CC O 32 THEN 4030 

4999 RETURN 

5000 REM Chargeaent objet ♦ 

5001 FI=1 : REM FLA6 de non trace * 

5010 II»PUT"Noa de l'objet a charger";EL$(K):EL$=EL$(K): 

'f 

5017 ON ERROR GOTO 23000: * 

5020 OPENIN EL$(K):'« 

5025 INPUT#9,C0{X),GX(K),GY(K),GZ(K),RE(K),L:REM L'obje 
t a (L+1) chaînes ♦ 

5030 FOR 1=0 TO L : REM Pour toutes les chaînes allant 
de 0 a L * 

5040 INPUT I9,N(I): REM Noabre de segaents sur chaîne * 


>CN^ 
>BP 
>MK 

>QZ 
>FG 
>FY 
>ZD 
>NX 
>TV 
>DX 
>UD 

>MD 
>UE 
>HE 
>HC 
>NC 
>ED 
>NT 
>EK 
>MY 
>XQ 
>XW 
>VR 
>NN 
>MF 
>NC 
>VC 
>UH 
>EG 
>HD 
>MX 
>QP 
>GB 
>RF 
>HC 
>tc 
>VG 
>HH 
>AX 
>AG 
>HE 
>VZ 
>ZM 
>JE 

>TF 
>NB 
>VH 

>EQ 

>YY 


5050 FOR J=0 TO N(I);REM Pour tous les points de la cha >CN 
ine d'indice I ♦ 


5060 INPUT #9,XT(I,J),YT(I,J),ZT(I,J):'* >G2 
5065 IF FI=0 THEN GOSUB 15000;R£M Tracer* >HD 
5070 NEXT J:NEXT I:'* >nu 
5080 CLOSEIN:'* >VE 
5999 RETURN:'« >gF 
7000 REM CALCUL PARAMETRES VISION * >DD 
7090 ex = XG - XM : CY = Y 6 - YM ; CZ = ZG - ZM:'♦ >FB 
7100 DD = SQR (CX*CX + CY*CY ):'♦ >wu 


7110 IF DD = 0 AND CZ > 0 THEN TE = 0 : Kl = PI / 2 : G >VV 
OTO 7210:'* 

7120 IF DD = 0 AND CZ < 0 THEN TE = 0 : Kl =-PI / 2 : G >WH 
OTO 7210:'* 

7130 Kl = ATN (CZ/DD) >nj 

7140 IF ex = 0 AND CY > 0 THEN TE = PI/2 : GOTO 7210: '♦ ;>NV 

7150 IF ex = 0 AND CY < 0 THEN TE =-PI/2 : GOTO 7210:'♦ >PY 


7160 TE = ATN (CY/CX);'* >PQ 

7170 IF ex < 0 AND CY > 0 THEN TE = PI + TE:'* >DM 

7180 IF ex < 0 AND CY < 0 THEN TE = PI + TE:'* >DL 

7190 IF ex < 0 AND CY = 0 TÆN TE = PI: '* >AK 

7200 IF ex = 0 AND CY < 0 THEN TE = - PI/2:’♦ >DU 

7210 REM * )p]) 

7220 REM * >FE 

7230 CT = COS (TE) : ST = SIN (TE):'* >YV 

7240 CK = COS (Kl) : SK = SIN (Kl):'# >YQ 

7250 XU = CK*CT : YU = CK«ST : ZU=SK;'* >BC 

7260 XV = - ST : YV = CT : ZV = 0:'« >VD 

7270 XW = - SK*CT : YW = - SK*ST : ZW = CK:'* >DD 

7999 RETURN : '♦ >Qt,; 

10000 REM dessin par bloc * >UK 

10005 FI=0 : REM FLAG trace * >VP 

10010 CLS:PRINT"DESSIN DU BLOC”;PRINT:'# >JG 

10040 FOR K = 0 TO E: '* >|1E 

10050 PRINT EL$(K):'* >nl 

10055 NEXT K :'* >jk 

10060 FOR TT =0 TO (E+l)*500 : NEXT TT:CLS:'* >HB 

10065 GOSUB 62000:REM tracer cadre ♦ >CF 

10505 FOR K = 0 TO E: '* 

10510 GOSUB 5020:R£M Charger et tracer * >GD 

10520 NEXT K:'* >je 

10999 RETURN:'* >xb 

11000 REM DESSIN PAR ELEMENTS * >ZL 

11010 FI=0 : 'Annuler -flag de non-trace >RE 

11075 GOSUB 62000:'* >lf 

11100 FOR K=0 TO E:'* >lz 

11110 GOSUB 5020:REM Charger et tracer ♦ >GA 

11120 NEXT K >jc 

11999 RETURN :'* >xd 

12000 REM Objet déjà présent en meaoire >HD 


12005 IF L=-l THEN CLS:PRINT''Pas d'objet en iBeaoire, eh >TU 
, farceur i":SOUND 1,50 ;FOR TT=1 TO 1000: NEXT TT : GO 
TO 10 

12010 GOSUB 62000:REM tracer cadre >BW 

12020 FOR I = 0 TO L : FOR J = 0 TO N(I);REM POUR TOUTE >GQ 
S LES CHAINES ET TOUS LES POINTS DE CES CHAIfES 
12030 GOSUB 15000:REM TRACE IMAGE ECRAN >GA 


60 


CPC n°36- Juillet/Août 1988 



' • 'f# f #- Ê Ml Mm^ MmÊ* 


12040 NEXT JrNEXT I >NZ 


12999 RETURN >PC 

15000 REM Calcul et trace i*age ♦ >ZJ 

15040 XL=XÎ(1,J)-XM;’* >PZ 

15050 YL=YT(1,J)-YM:'« >PD 

15060 ZL=ZT(I,J)-ZM:'* >PH 

15090 XA=XL*XU+YL*YU+ZL*ZU:’* >YF 

15100 YA=XL*XV+YL*YV+ZL*ZV:'♦ >YB 

Î5110 ZA=XL*XW+YL*YW+ZL*ZW;'* >YG 

15121 IF XA=0 AND YA=0 AND ZA=0 THEN ZA=0.001;'* >LN 

15122 RO = SQR(YA*YA+ZA*ZA): ’* >iÆ| 

15125 IF XA=0 THEN B=90:60TO 15127:'* >BK 

15126 B=ATN(R0/XA):B=B*180/PI:'* >Z1J 

15127 IF XA<0 THEN B=B+1B0:'♦ >UU 

15130 IF YA=0 WID ZA=Û THEN A=90:60T0 15180:'* >KD 

15140 IF ZA=0 AND YA >0 THEN A=-90:G0T0 15180:'* >LT 

15150 IF ZA=0 AND YA<0 THEN A=90:G0T0 15180:'* >KE 

15160 A=-ATN(YA/ZA):A=A*180/PI:'* >ZM 

15170 IF ZA<0 AND YA >0 THEN A=A-180 :'* >BZ 

15172 IF ZA <0 AND YA<0 THEN A=A+180:'♦ >BD 

15174 IF ZA <0 AND YA =0 THEN A=180:'♦ >AG 

15180 X=B*SIN(A*PI/180):Y=B*C0S(A*PI/180):'* >LF 

15240 XE=313+X«200/AN:REH COORDONNEES ECRAN * >NC 

15250 YE=200+Y«200/AN : >£)« 

15260 IF J=0 THEN PLOT XE,YE ; '* >NU 

15270 IF JOO THEN DRAW XE,YE,1,0:'* >AD 

15999 RETURN:'♦ >XG 

18000 REM Acquisition elenents ♦ >BB 

18010 INPUT"Noi«bre d’elements ";E:E=E-1:'* >QY 

18020 FOR K=0 TO E:PRINT"Ele<nent numéro ";K+1;INPUT ELi >VU 
(K):NEXT K:'* 

18999 RETURN:'♦ >XK 

23000 'Erreur sur objet >DA 

23999 CLS:PRINT"Objet inexistant...":SOUND 1,20:F0R tt= >RQ 
0 TO 1000:NEXT:EL$(K)=''“:EL$="‘:;RESUME 10 
27000 REM REPRESENTER UN OBJET >ZR 

27005 CLS >FK 

27010 PRINT-REPRESENTER UN OBJET":PRINT >LY 

27020 PRINT;PRINT"a-Objet en meraoire” >NN 

27030 PRINT"b-Dessin par éléments" >LM 

27040 PRINT"c-Dessin par bloc":PRINT >LC 

27050 GOSUB 65000 : PRINT : CD=C >XQ 

27055 IF C = 1 AND L O -1 THEN 27140 >YH 

27057 IF CD=3 THEN GOSUB 31000 >HF 

27060 IF C=1 THEN GOSUB 30000:E=0:GOTO 27140 >KB 

27070 IF C = 3 THEN GOSUB 31000:aS: PRINT"CONTENU BLX >BR 
: ":PRINT: FOR K = 0 TO E : PRINT EL$(K) ; NEXT K : FO 
R TT = 0 TO 1000 : NEXT H :GOTO 27140 
27080 INPUT"Noiiibre d'elements (1 par defaut) ";E$ >DW 

27082 IF E$=*" THEN E=0 >PX 

27084 IF E$<>"" TICN E=VAL(E<)-1 >YR 

27090 as : PRINT"SAISIE ELEfCNTS":PRINT >LQ 

27100 FOR K = 0 TO E >LH 

27110 PRINT-Element "jK +1 >XK 

27120 INPUT a$(K) >MH 

27130 NEXT K >BJ 


27140 IF AN = 0 THEN 27160 >QN 4 


27150 PRINT:PRINT"On garde les memes paramétrés de vise >MX 
e ?";BOSUB 65020 : IF C = 15 THEN 27360 
27160 CLS : PRINT“a-Saisie point de vue au clavier" >GN 

27170 Pf^INT"b-Saisie écran":PRINT: GOSUB 65000:CSAISIE=C >HW 

27180 IF CSAISIE = 2 THEN 27310 >WL 

27190 PRINT:PRINT"Coordonnees observateur ;":PRINT >HK 

27200 INPUT"X=";XM >NM 

27210 1NPUT"Y=";YM >NQ 

27220 INPUT"Z=";ZM:PRINT >VB 

27230 PRINT"Coordonnées point vise :":PRINT >YN 

27240 INPUT"XG=";XG >PZ 

27250 INPUT"YG=";YG >PC 

27260 INPUT"ZG=";ZG:PRINT >HV 

27270 PRINT"Ouverture angulaire" >KG 

27280 IWUT'^O degres par defaut ";AN$ >NB 

27285 IF AN$="" THEN AN = 20 : GOTO 27350 >DM 

27290 AN=VAL(AN$);GOTO 27350 >WL 

27310 REM >GA 

27320 REM SITUER DECOR >RX 

27325 CLS >6E 

27330 GOSUB 35000 >LZ 

27340 GOSUB 61000 >LZ 

27341 XG0=X6:YG0=YS:ZG0=Z6 >XF 

27342 XG= XGO + (XGE - 300) * R / 30 >WF 

27343 YS= YGO + (YGE - 200) * R / 30 >HJ 

27344 XM= XGO + (XME - 300) ♦ R / 30 >HW 

27345 YM= YGO + (YME - 200) * R / 30 >WZ 

27346 ZG= Z60 + (ZGE -200) ♦ R /30 >WD 

27347 ZM= ZGO + (ZME -200) * R /30 >WT 

27350 CLS : GOSUB 7000 >PJ 

27360 ON CD GOSUB 12000,11000,10000 >AL 

27390 ÎSCREENCOPY,2,1:SOUND 1,50 ; LOCATE 1,1:PRINT"Har >CV 
dcopy ?":GOSUB 65020:IF C=15 THEN ISCREENCOPY,!,2:CALL 
W000:PRINT#8:PRINTi8 

27998 CD=0 >LJ 

27999 RETURN >PJ 

28000 REM CHARGEMENT FICHIER BLX >CB 

28010 INPUT"Ncxi du bloc ";BL$ >BN 

28015 'ON ERROR GOTO 45000 >EB 

28020 OPENIN BL$ >LE 

28030 IW>UT •9,E >FG 

28040 FOR K=0 TO E >LC 

28050 INPUT 19,ELI(K) >PV 

28060 INPUT i9,C0(K) >NU 

28070 INPUT #9,GX(K) >PA 

28080 INPUT 19,GY(K) >PC 

28090 INPUT #9,GZ(K) >PE 

28100 IH>UT I9,RE(K) >NU 

28110 NEXT K >BH 

28120 aOSEIN >UD 

28999 RETURN >PK 

30000 'OBJET EN MEMOIRE ? >CJ 

30002 IF LO-1 AND ELI="" THEN PRINT"Objet sans nom pre >ZC 


sent en iemoire":PRINT:PRINT"On garde ?";GOSUB 65020; I 
F C=15 THEN 30999 

30010 IF ELI <>*• THEN PRINT"Objet résident ";ELI;PRINT >AC 


CPCn ” 36 - Juillet/Août 1988 


61 



:PRINT"On garde ?";GOSUB 65020 

30020 IF EL$<>“" AND C=15 THEN 30999 >A6 

30040 60SUB 5000 >C6 

30999 RETURN >PC 

31000 REH DLX EN MEHOIRE ? >UH 

31010 IF BL$ <>"“ THEN PRINT «Bloc résident ■•;BL$:PRINT >NJ 

"On garde ?";60SUB 65020 


31030 IF BL$<>"“ AND C*15 THEN 31999 
31040 PRINT:GOSUB 28000 
31999 RETURN 
34000 'PLAN TROIS VUES 

34999 RETURN 

35000 REH SITUER DECOR 

35001 FI = 1 : IF CDO 0 THEN 35010 

35002 CLS:PRINT"VUE EN PU«":PRINT;PRINT"a-Objet":PRINT >CA 
"b-Bloc":GOSUB 65000:CD=C:IF C = 1 THEN GOSUB 30000 

35003 IF C = 2 THEN GOSUB 31000 >VH 

35010 IF CD = 1 THEN GOSUB 44000:XS=6X(K):YG=GY(K):ZG=G >EE 
Z(K):R=RE(K):GOTO 35180 


>AG 

>RX 

>PD 

>X 

>PG 

>R(] 

>XH 


35020 XG=0:YG=0:ZS=0:R=0:PRINT"Un peu de patience...": 
35030 FOR K = 0 TO E 

35040 IF CD = 2 OR cd = 3 THEN FI=1 :GOSUB 5020 
35050 XG=XG+GX(K) 

35060 YG=YG+6Y(K) 

35070 ZG=ZB+GZ(K) 

35080 NEXT K 

35090 XG=XG/(E+1):YG=YG/(E+1):ZG=ZB/(E+1) 

35100 FOR K = 0 TO E:Fi=l:GOSUB 5020:PRINT'Je charge ": 
ELJ(K) 


>GQ 

>LJ 

>JA 

>HC 

>H6 

>HZ 

>CB 

>KR 

>JG 


♦ 


35105 FOR 1=0 TO L:FOR J=0 TO N(I) 

35110 RR= SUR ((XT(I,J)-XG)*( XT(I,J)-XG) + ( YT(I,J) 
G)*(YT(I,J)-YS) + (ZT(I,J)-ZG)*(ZT(I,J)-ZS ) ) 

35120 IF RR>R THEN R = RR 
35125 NEXT j:NEXT i 
35130 «XT K 

35140 IF CD=1 THEN R = RE(K-l) 

35150 CLS :GOSUB 62000 
35160 FOR K = 0 TO E :FI=1 
35170 IF CD O 1 THEN GOSUB 5020 
35180 FOR I = 0 TO L 
35190 FOR J = 0 TO N(I) 

35200 XE = 300 + ( XT(I,J)-XG ) * 30/R 

35210 YE = 200 + ( YT(I,J)-YG ) * 30/R 

35220 IF J=0 THEN HOVE XE,YE 

35230 IF J >0 THEN DRAW XE,YE,1 

35240 NEXT J : NEXT I 

35245 IF CD=1 THEN 35999 

35250 NEXT K 

35255 LOCATE l,l;PRINT*Vue en plan.Pressez <Retum>" 
35260 SOUND 1,20 : GOSUB 65020 

35999 RETURN 

36000 REH TRACE CROIX 
36010 HOVE XE-10,YE-10 
36020 DRAW XE+10,YE+10,1 
36030 HOVE XE-10,YE+10 
36040 DRAN XE+10,YE-10,1 
36999 RETURN 


>ZV 
-Y >JU 

>RZ 

>NJ 

>BH 

>VR 

>QE 

>QX 

>XL 

>LH 

>NX 

>Z6 

>2K 

>VW 

>XE 

>NU 

>QJ 

>CA 

>HV 

>NY 

>PH 

>QK 

>QU 

>RZ 

>QU 

>RD 

>PJ ♦ 


37000 REH EFFAÇAGE CROIX >TK 
37010 HOVE XE-10,YE-10 >QV 
37020 DRAN XE+10,YE+10,4 >rd 
37030 HOVE XE-10,YE+10 >QV 
37040 DRAN XE+10,YE-10,4 >rh 
37999 RETURN >pk 
41000 REH EFFAÇAGE LIGNE DU H«JT >ZT 
41010 LXATE 1,1:PRINT" >ZB 

m 

41999 RETURN >pE 
44000 REH Calcul de CG et de RE >NB 
44010 GX=0:GY=0:GZ=0:N=0:RE=0 >YV 
44020 FOR 1=0 TO L: FOR J=0 TO N(I) >ZD 
44025 N=N+1 >TE 
44030 GX=GX+XT(I,J) >PB 
44040 GY=GY+YT<I,J) >pf: 
44050 GZ=GZ+ZT(I,J) >PK 
44060 NEXT J:NEXT I >ng 
44070 6X(K)=6X/N >LZ 
44080 GY(K)=6Y/N >lc 
44090 GZ(K)=6Z/N >LF 
44100 FOR 1=0 TO L:FOR J=0 TO N(I) >ZP 
44110 R=SQR ((XT(I,J)-GX(K))*(XT(I,J)H3X<K))+(YT(I,J)-G >HJ 
Y(K))*(YT(I,J)-GY(K))+(ZT(I,J)-GZ(K))*(ZT(I,J)-6Z(K))) 

44120 IF RE<R THEN RE=R >RN 
44130 NEXT J:NEXT I >ne 
44140 RE(K)=RE >VB 

44999 RETURN >PH 

45000 REH ERREUR SUR BLX >UK 
45999 SOUND l,20:CLS:PRINT"Bloc inexistant..":FOR TT=0 >LZ 
TO 1000: NEXT :RESUHE 10 

59000 REH SAISIE POINT SUR ECRAN >AK 
59030 XE=300:YE=300:XE(0)=XE:YE(0)=YE >FA 
59040 GOSUB 36000 >ld 
59050 CC$=INKEY$:IF CC$="" THEN 59050 >CY 
59060 CC = ASC(CCS) :GOSUB 37000 : REH EFFACER CROIX >TJ 
59070 IF CC = 243 THEN XE=XE+10 >NR 
59080 IF CC = 247 THEN XE=XE+50 >NB 
59090 IF CC = 242 THEN XE=XE-10 >NV 
59100 IF CC = 246 THEN XE=XE-50 >NV 
59110 IF CC = 240 THEN YE=YE+10 >NK 
59120 IF CC = 244 THEN YE=YE+50 >NV 
59130 IF CC = 241 THEN YE=YE-10 >Nq 
59140 IF CC = 245 THEN YE=YE-50 >NA 
59150 GOSUB 36000 : REH TRACE CROIX >BK 
59160 IF CC O 13 AND CC O 32 THEN 59050 >CY 

59999 RETURN >qd 

60000 'ROUTINES NON ENCORE CREES >DB 
60010 CLS:SOUND l,50:PRINT"Routine non encore créé..."; >KX 
FOR n=0 TO 200: NEXT 

60999 RETURN >PF 

61000 REH SAISIE POINT SUR ECRAN >AC 
61005 LOCATE l,l:PRINT"Donnez position point vise,en pi >UP 
an" 

61010 GOSUB 59000:GOSUB 41000 >HX 
61125 XGE=XE;YGE=YE;îSCREENCOPY,2,1 >GU 


61135 ye=200;GOSUB 3000;GOSUB 41000;LOCATE 1,1:PRINT"In >B6 


62 


CPC n" 36- Juillet/Août 1988 



















i 


21 RUE J. DUMAS 


24660 CHAMIEKS 


diquez cote point vise^GOSUB 4000;60SLIB 41000; HOVE XGE 
,0;I>RAH XGE,399,0: !SCREENC0PY,3,1:ZGE=YE 
61136 îSCREENCOPY,1,2:L0CATE l,l;PRINT"Position observa >YE 
teur dans vue en plan" 

61140 XE=300;YE=300:e0SUB 59000:XME=XE;YME=YE >QT 

61160 MOVE XGE,YGE ; DRAW XNE,Y«,1 ; ÎSCREENCOPY,2,1 >YA 
61170 ÎSCREENCOPY,1,3;MOVE XME,0;DRAW XME,499,2;L0CATE >XA 
l,l;PRINT"Cote observateur" 

61180 GOSUB 4000:ZME=YE;MOVE XGE,YGE;DRAW XHE,ZHE,1:M0V >JX 
E XME,0;DRAW XME,399,0;ÎSCREENCOPY,3,1 


61190 ÎSCREENCOPY,1,2 >RL 

61200 MGX = XGE-XfC ; M6Y = YGE - YME;MGZ=XBE-XME:AN=20 >YA 

61210 DX=MGX * COS (AN*PI/180) - MGY * SIN (AN*PI/180) >IJW 

61220 DY=MGX ♦ SIN(AN*PI/180) + MGY«C0S(AN*PI/180) >TD 
61230 MOVE XHE,YME >NH 

61240 DRAW XME+10*DX,YME+10#DY,2,1 >CL 

61250 DX=MSX*C0S(AN*PI/180)+M6Y*SIN(AN*PI/1B0); >TG 

61260 DY=-MGXfSIN(AN*PI/180)+MGY»C0S(AN*PI/180) >TV 


61270 MOVE XME,YHE >NH 
61280 DRAW XME+10*DX,YME+10*DY,2,1 >CQ 
61290 GOSUB 410O0:L0CATE 1,1 ;PRINT"Chaep visuer;GOSUB >AX 
65020;C=ASC(C$) 

61300 IF C013 AND C032 AND C0241 AND C 0240 THEN 6 >WX 


1290 

61310 IF C=13 OR C=32 THEN 61400 >HH 

61320 MOVE XME,YHE >NH 

61330 DRAW XME+10*DX,YHE+10*DY,2,1 >a 

61340 DX=HGX * COS (AN*PI/180) - MGY ♦ SIN (AN*PI/180) >UA 
61350 DY=MGX * SIN(AN*PI/180) + NGY*C0S(AN*PI/180) >TH 
61360 MOVE XME,YME >NH 

61370 DRAW XME+10*DX,YME+10«DY,2,1 >CQ 

61380 IF C=240 THEN AN=AN+5:G0T0 61210 >EE 

61390 IF C=241 THEN AN=AN-5;B0T0 61210 >EJ 

61400 SOUND 1,20 >DD 

61999 RETURN >PG 

62000 REM CADRE * >HA 

62010 CLS: '♦ >1^ 

62015 BORDER 14 :'* >F6 

62020 PLOT 0,0;'* >VA 

62030 DRAW 639,0,3 >111 

62040 DRAW 639,399,3;'* >NA 

62050 DRAW 0,399,3;'* >MR 

62060 DRAW 0,0,3;'* >GF 

62999 RETURN;'* >XJ 

63000 REM CHAINAGE SUR H0D2 >VN 

63999 CLS:aWIN"H0D2#16 >TJ 

64000 REM PASSAGE SUR HODl * >VP 

64999 CLS:CHAIN"H0D1I16"; '* >UD 

65000 REM Saisie caractère * >NV 

65010 PRINT:PRINT"Votre choix ;" ;'* >GG 

65020 C$=INKEYI;IF C$="" THEN 65020;'* >BB 

65030 C=ASC(Cf):'* >EK 

65040 IF 096 THEN C=C-96;G0T0 65535; '* >DK 

65050 IF C<96 THEN C=C-64;'* >TB 

65535 RETURN: '* >111 ^ 



Vous n* pouvez tester un 

Montage électronique que 
lorsque la dernière sou¬ 
dure est effectuée.En 

^ ••iet^z 

toutes les chances de 
votre coté dès le départ 
en détectant les pannes 
avant qu'elles ne se 
produisent.TEST calcule. 


et tout coMse un analyseur logique 11 reproduit les 
signaux Issus d'un circuit électronique composé de 
circuits intégrés TTL LS. 

SI les jeux de massacre ne vous amusent 
plus,que vous pensez pouvoir concilier ré- 
, fl«*ion et action et qu'en plus vous avez de la 
chance,alors vous pouvez relever le défi que vous 
ance S PSS devenant patron d'une entreprise.il 
voue faudra tout fairet maîtriser les frais,gérer 
les stocks,faire face è tous les aléas de la vie 
d'une société et surtout VENDRE. 

Etre patron,si c'était facile ça se saurait ... 
Serez vous à la hauteur ?? 



GRyH-SET est un logiciel de DAO 
spéclalMent adapté au dessin de 
schémas,plans,circuits Imprimés 
(échelle 1 exacte) et tout des¬ 
sin technique en général.11 dis¬ 
pose d'une feuille de travail 
jusqu'à S écrans résidents,d'une 
bibliothèque de symboles redéfl- 
nissables et de fonctions gra¬ 
phiques ou de saisie de zone. 
!■'Impression des dessins obtenus 
est entièrement paramétrable. 
Ecrit en langage machine,11 est 
entièrement résident. 



Cl ASSISTANT est un lo¬ 
giciel de dessin de cir¬ 
cuits imprimés : taille 
640.540mm soit plus de 
50 écrans tous résidents 
«■ortie sur imprimante, 
2 échelles,bibliothèque 
redéflnlssable,simple ou 
double face (travail en 
4 couleurs),2 versions. 

DEBÜCCER le complément indispensable au programmeur 
langage machine.Entre autre un désassembleur,un 
éditeur,une trace,un relogeur,des points d'arrêt. 

DIBCKHBI.P est un SMniteur de disquette qui permet 
par exemple de récupérer un programme effacé,répa¬ 
rer,modifier un catalogue,lire ou rectifier,octet 
par octet,le contenu d'une disquette. 

*y* ***** 9 **tion de fichier avec recherche 

■vlticritères,sortie de fiche sur imprimante,...11 
est foomi avec 4 masques prêts à 1 ' emploi. 


NO«__ PRENOM 

ADRESSE_ 



Veuillez me faire parvenir t 

□une docuzwntatlon (joindre 3f70 en timbre) 


□DEBOGGER 

6128/664 

295 

P 

□GRAPB-SET 

6128 uniquement 

375 

P 

□DISCKHELP 

6128/664 

175 

P 

□CI ASSISTANT 

6128 uniquement 

550 

P 

□ci assistant * 

6128 uniquement 

800 

P 

□g.P.R. 

6128 uniquement 

275 

P 

□test 750 

Tous CPC (disquette) 

500 

P 

□test 2000 

Tous CPC (disquette) 

750 

P 

□ B08S 

Tous CPC (disquette) 

220 

P 


frais de port 20 f 


CPC 36- Juillet/A oût J 988 


63 






















































































FC 151 ^ 


VIDM 
COUUUR 
PC1S1R . 


Christophe PAVE N 


•40/644 


Vous AVEZ UN PC 1512 MONOCHROME ET 
UN CPC COULEUR ? 

ALORS VOUS AVEZ UN PC 1512 COULEUR I 


L'interface que nous vous proposons ce mois-ci va en effet 
vous permettre d'utiliser votre moniteur couleur de CPC sur 
un PC 1512. 


Attention toutefois car cette interface n'assure pas l'alimen¬ 
tation de I unité centrale du PC 1512, le moniteur monoch¬ 
rome devra rester connecté pour assurer cette fonction. 

Le moniteur CTM 640/644 fournit l'alimentation de l'interface, 
de ce fait, celle-ci est réduite à sa plus simple expression.' 
L auteur a utilisé ce montage durant plusieurs mois sans con¬ 
séquences pour le PC 1512 ni le CTM 640, mais tient à pré¬ 
ciser qu II décline toute responsabilité pour un dommage direct 
ou indirect pouvant découler de l'utilisation d'un montage 




Réalisation de l'interface 

ont une fréquence très supérieure 6 10 
MHz, ce qui implique que la réalisation devra être de très 
bonne qualité : 

composants de marque, pas d'équivalents approximatifs ; 

- résistances 6 couche métallique tolérance 2 % ; 

- potentiomètres sur support céramique ; 

- condensateur mylar métallisé ; 

- circuit imprimé en verre époxy, pas de Bakélite. 


Nomenclature des composants 

RI 6 R5 : 270 ohms 1/4 W (voir note 1) 

R6 6 R8 : 47 kohms 1/4 W 
R9 6 R11 : 56 kohms 1/4 W 
RI2 6 R14 : 39 kohms 1/4 W 
R15 6 R17 : 33 ohms 1/4 W 

RI8. : 100 ohms 1/4 W 

PI 6 P3 : 250 ohms ajustables 

Cl : 10 6 22 nF 100 V 
Tl 6 T3 : BC548C 

Cil : SN74LS00 (IMPERATIF : pas de 7400) 

Note 1 : la valeur des résistances RI 6 R5 dépend des capa¬ 
cités parasites du câble (nature, longueur), 270 ohms est la 
valeur optimale pour un câble de 35 cm maximum. Pour 50 
cm : RI 6 R5 = 220 ohms. 

Connectique 

1 fiche DIN 8 broches (*) 

1 socle DIN 6 broches 
1 socle pour alimentation (*) 

( ) Voir paragraphe Brochage des connecteurs. 



SCHEMA DE PRINCIPE 



64 


CPC n° 36- Juillet/Août 1988 






































































Circuit imprime 






, Ob'eo'f .es o 

/-,Aire O ^ , --lit 


AOOO 







<“• ^î«w 






io'ores-, c sciooo'e 200' P éc»a''ï®'.c,t\llt3. Qy\.\20^ . me 0°*' 

3 , V'"®" ' -.S f rï^eodeof^ ^5350 CRV3S^ ^ ^r'^o^A^Ô 

-PC 6'28 •• ^eA\eo'^;®CeroeV qA, r^e f ^^^arVe'- 

-P -.rnrès o®^ -_ Prooce/^,^-nV\Of®' rotopo'® _„\\eS-'® 




AC 

















































Z 


Prise mâle interface 
vue côté soudures 

1 ; 

2 : 

3 : m 

À : non connecté 

5 : 

6 : 

7 : 

6 ; non connecté 



3 


Socle femelle interface 
vue côté soudures 

1 : R 

2 : V 

3 : B 
4:5 

5 : m 

6 : non connecté 


Alimentation 



Brochage 

DES 

CONNECTEURS 


* La pris* du PC 1512 n'est pas standard : 
repousser légèrement vers le centre les broches 7 et 6. 


MONTAGE 

Le circuit imprimé sera monté dans un coffret métallique relié 
à la masse dont les dimensions sont : 150 x 50 x 50 mm. 
Le coffret métallique est impératif pour éviter les effets désa¬ 
gréables dus au rayonnement du moniteur. 


ESSAI ET MISE AU POINT 

PRINCIPE DE RACCORDEMENT 

En utilisation, le moniteur CTM 640/644 est posé sur l'unité 
centrale du PC 1512, le moniteur monochrome servant d'ali¬ 
mentation est posé à droite de l'UC. 

MISE EN SERVICE 

NE SOYEZ PAS TROP PRESSE ; vérifiez votre montage I 

- Avant mise sous tension, tourner les trois potentiomètres en 
butée vers la gauche (sens inverse des aiguilles d'une 
montre) ; 

- Effectuer les raccordements hors tension ; 

- Baisser au minimum la luminosité du moniteur CTM ; 

- Mettre sous tension le moniteur CTM puis le moniteur 
monochrome. Disquette MS-DOS dans l'UC ; 

- Sur le CTM : agir sur le réglage de stabilité verticale pour 
stabiliser l'affichage, s'il reste illisible, corriger avec un petit 
tournevis le réglage de stabilité horizontale. Ce dernier per¬ 
met également d'ajuster le cadrage ; 

- Si vous n'obtenez pas une image lisible à l'écran, votre inter¬ 
face est défectueuse : COUPER IMMEDIATEMENT LES 
MONITEURS. 



DISPOSITION DES REGLAGES A L'ARRIERE DU CTM 640 



- L'image à l'écran doit normalement être très claire, tourner 
les ajustables PI à P3 d'un même angle dans le sens des 
aiguilles d'une montre pour obtenir un fond noir. 

NE JAMAIS ALLER EN BUTEE VERS LA DROITE SUR PI 
A P3 : RISQUE DE DESTRUCTION DES TRANSISTORS Tl 
A T3. 

- Si les caractères à l'écran ne sant pas gris mais ont une cou¬ 
leur dominante, agir sur l'ajustable correspondant. 

- Lancer OEM PAÎNT paur affiner les réglages. 

N.B. Pour réutiliser le moniteur CTM avec le CPC, il vous sera 
peut-être nécessaire de corriger le réglage de stabilité hori¬ 
zontale (H. HOLD). 

P.-S. Cause achat carte et moniteur EGA, l'auteur vend l'in¬ 
terface décrite 500 F. 

Pour les lecteurs non bricoleurs, l'auteur dispose du matériel 
pour réaliser deux autres interfaces. S'adresser à la revue 
qui transmettra. 


66 


CPC n°36- Juillet/Août 1988 







































































I 


L 


I 


T 



1 


R 


E 


y'. 



• R = carré, rectangle. Choisir son 
encre (même procédure que pour "D"). 
Appui sur "R" et cliquer une fois pour 
valider départ coin haut gauche. 
Cliquer une seconde fois pour tracer. 

• t = cercle, ellipse. Choisir son encre 
(même procédure que pour "D"). Appui 
sur "C'' et cliciuer une fois pour valider 
centre du cercle. 

Cliquer une seconde fois pour trocer. 

• P = carré plein, rectangle plein. 
Choisir sa trame par appui sur la touche 
"T" (type de trame afficnée sur la bande 
de contrôle). 

Choisir les encres de la trame grâce aux 
deux curseurs situés au-dessus de la 
bande des encres. Ces curseurs sont 
déplacés vers la droite par appui sur la 
touche "C" pour celui du haut et sur la 
touche "J" pour celui du bas. Dans le cas 
de la trame unie, seule l'encre sélection¬ 
née par le curseur du haut est choisie. 
Appui sur et cliquer pour lancer. 

F = fill. Choisir sa trame et ses encres 
de la même manière que "P". La fonc¬ 
tion est inhibée si vous sélectionnez une 
encre de remplissage identique à celle de 
la zone de remplissage. 

Appui sur "F" et cliquer pour lancer la 
fonction. 

• A = transfert d'une partie écran. 
Choisir son mode de transfert. Ces modes 
sont représentés par des symboles modi¬ 
fiés par appui sur la touche "Z". 


JTILISATION 


4 


spparaît une bande de 
^contrôle des commandes. Celle- 
_ Jci se déplace sur l'écran en cas 
le besoin. Cette zone disparaît pendant 
le déroulement d'une fonction. 

Le programme retourne au BASIC pour 
certaines fonctions. Si vous appuyez sur 
"break" par erreur, vous pouvez reve¬ 
nir au programme par la touche "Enter" 
du pavé numérique. 

Voici la liste des commandes et fonc¬ 
tions ; celles-ci étant actionnées ou lan¬ 
cées par appui sur des touches du cla¬ 
vier. Le déplacement du curseur est géré 
par le joystick ou par les touches du pavé 
numérique : 


4 = gauche 
6 = droite 
8 = haut 

2 = bas 

5 = point 


Le choix (J/C) est effectué par la touche 
"J" (l'état est affiché sur la bande de 
contrôle). 

f = fonction 
c = commande 

• M (e) = mode d'affichage AND - 
OR - XOR - FORCE, Tous les traçages 
et remplissages sont assujettis au mode 
d'afficnage (sauf le point). 

• L = charge une page écran 

• S = sauvegarde une page écran 

• Exp = loupe (inaccessible au cours 
d'une fonction) 

• D = droite. Choisir son encre grâce 
à la flèche de la bande de contrôle. Cette 
flèche se déplace par appui sur les tou¬ 
ches " —" " —" du pavé curseur. Modi¬ 
fier la couleur de l'encre par appui sur 
les touches "t" et "l" du pavé curseur. 
Appui sur "D" et cliquer une fois pour 
valider départ de la droite, cliquer une 
seconde fois pour tracer la droite. 


Voici un utilitaire de 
dessin fonctionnant sur 
464 et 6128 en mode 0 


CPCn ° 36 - Juillet/Août 1988 


67 


O = ne force pas le fond 
■^= force le fond 

et prend la nouvelle image en cas de 
superposition des 2 rectangles. 

□ = ne force pas le fond 
■ = force le fond 


en cas 


et ne prend pas la nouvelle image er 
de superposition des 2 rectangles. 

Appui sur "A" et cliquer une fois pour 
valider le départ coin haut gauche. 
Cliquer une seconde fois pour déplacer 
le rectangle de transfert. 

Cliquer une troisième fois pour effectuer 
le transfert. Vous sortez de la fonction 
lar appui sur la touche "DEL" (voir plus 
oas). Cette fonction n'est pas rattachée 
au mode d'affichage (XOR, OR, AND, 
FORCE), elle peut être utilisée comme 
brosse, gomme. 

• B = affichage de caractère sur écran. 


Ê 


Choisir le caractère (affiché sur bande de 
contrôle) par appui sur les touches " < " 
et">". 

Appui sur "B" = un rectangle apparaît 
représentant les limites du caractère. 
Cliq^uer pour afficher le caractère. 

DEL = permet de sortir dans tous les cas 
d'une fonction en route. 

Q = border - 1 - 

W = border + 1 / 

• CLR = remplit l'écran et la mémoire 
avec l'encre sélectionnée par la flèche de 
la bande de contrôle (le tableau précé¬ 
demment effacé est perdu, donc 
prudence. 

• 1 = curseur moins rapide") ^ 

• 2 = curseur plus rapide •’ 

• G = vue générale 

Les numéros d'encre et de couleur sélec¬ 
tionnés par la flèche sur la bande con¬ 
trôle sont affichés sur celle-ci en bas à 
droite (e = encre, c = couleur). 


Le programme CREART va charger un 
programme CREA.BIN. Ce dernier a été 
créé par le listing "DATAS". Vous 
devez donc tout d'abord lancer DATAS 
pour obtenir CREA.BIN. Ensuite pour 
démarrer le programme, vous taperez 
RUN "CREART'^. 

Notes : 

En ce qui concerne le lanceur BASIC 
"CREART", il ne faut surtout pas modi¬ 
fier la ligne 10 au risque de perturber 
le fonctionnement de la fonction 
"Cercle". 

Il est possible de récupérer des pages 
écrans créées sur d'autres logiciels, si 
celles-ci sont au format normal (17 K). 
Il suffit de remplacer la ligne 140 par ; 

140 CCS ="*chargement*";gosub 
150:load "nom",&C000:call TEM 2; 
return 

et de supprimer la ligne 160 ou 170 
selon l'orainateur. 




iO GOTO 40 

20 C=!(1234:F=.l<5o7S: î=?(1234:vi=î=5û78: 

30 DEGtCALL TMEEtORIGIN 0,0:MGVE C-fI.F:F0R T=0 Tü 36u 3 
TEP lOtDRAW C05 (T)*î+C.3ÎN(T)*W+F,J:NEX7:CALL TEHZ:RET'ü 
RN 

40 BORDER 1:M0DE ÛtIMK 0,0:INf: 1.26:iNK 4,24;INK 5.6;Mt 
nORY î(lFFF;REIC0=5i8CC0:TEt1Z=?.!eC8D:TMEE=?i8CA5:T!1EZ=S(8C72 
:L0CATE 1,10:PEN ItPRINT STRIN6$(60."■»"):L0CATE 7,1Î:FE 
N 4:PRINT "CRE ART":LOCATE 4,18:PEN StFRINT "par N.VINC 
ENT’':REN 1 

50 KEY 139,“MODE 0:CALL REICOtCALL TMEEtGOTO 110"+CKR${ 
13) 

60 LOAD "crea.bin" 

70 CfLL ;JF46 
80 A=PEEK{.î(750à) 

90 ON A GOSUB 130,140,20 ■ 5 auvg,charqt,cercle 
100 POKE 8i7506,4;P0KE Îy7527.0 . 

110 GOTO 70 

130 CC$=''*SAUVEGARDE*":GOSUB 150:CALL REICOtSAVE LÏ+".D 
ES". B,îiCOOO,MOOO: SA'Æ L$+". EXT". B,Î(7E72, S<10:RETURN 
140 CCt=”*CHARGEMENT*":G0SUB 150:L0AD L$+“.EXT",!<7E72:C 
A'lL RE ICO; LOAD Lt+".DES",8!C000:CALL TEMZ: RETURN 
150 INK 0,3:INK 1,26;CLS:M0DE 2;L0CATE 30,2:PRINT CCÎ 
160 J$="*.DES":IDIR,SJ* '464 
170 pour 664 "ÎDIR,"*.DE3"" 

180 LOCATE 10,23;INF'UT "Nom du tableau '';L$ 

190 IF LEN(L$)=0 OR LEN(L$)>8 THEN GOTO 1^ ELSE MODE 0 
:CALL TMEE:R'ETURN 'J ^ 


>TF 


/FB 

,PW 

>E6 

>GF 

>QU 

>VE 

;^RF 

>AZ. 

>'Æ 

>WT 

>RB 

>RJ 

XQT 

>ÜV 



il' A*301i2:'^=373i2:L=:OC';NKlLE A =F;F0R A-A TO AfiStRcAu Cî:’ - 
VÂL;'’?-.”i-Cî;:5=3TKi-o533o*'54'i32767):IF A';=F THEN Püt.E A.r 
20 MEXTtREAD D4;T=vAL("^."+D$.': IF ÎL b THEN FRINT :HR$f7):"trre 
Lir iiqne":L:END ELSE L=L-‘C;:i>IEt'iD 
30 SAVE ' créa",B, IiZOhO, MCtO 

100 DATA 3E.00,32,39,75.3E,14,CD,lE.BB.C2.CB.75.3E,04.CD,0ài4 
105 DATA lE,BB,C2,CD,75,3E.0B,CD.iE,BB,C2.D2,75,3E,ùE.CD.oEli: 
110 DATA lE.BB.C2,D7.75.C3.DC.75,3Ei04,C3,I)9.75,3E,'08.C3.l669 
115 DATA D9.75.3E.01,C3,D9,75,3E,02.32,39.75.3E.'X,CD,1E.1C5l 
120 DATA BB. C8,06,10,3A,39.75,30.32.39.75,09,00,00,21,00,212/- 
125 DATA 00,22,39,78,DD.21,01.25,ED,5B,0D.75,22,tE,77,2A.2699 
130 DATA 0F,75.2B.2B,22,F0,77.CD,F2.77,32.3B,7e.47,3A,2E.2CC3 
135 DATA 75.B3.C8,3A,36,75,FE,04.CA,20,76,3A,2F,75.B8,C6,345D 
140 DATA CD.C7,77,CD.4A,76,CD,08.77,CD.3B,73,2A.39,78,7C.3C13 
145 DATA B7.C2,37,76.7D.B7,CB.CD.09.BB.FE,7F,C8.CD,1A,7B,456F 
150 DATA 22,F0,77,ED,53,EE.77,C3.23,76,3A,38,78,47.ED,5B,4D72 
155 DATA EE,77,ED,53,C3,77,2A,F0,77.7C,FE,01,DA,63.76,7D,568D 
160 DATA FE.8E,D0.23,23,CD,F2,77,B8,CA,92,76,ED,5B,C3,77.6071 
165 DATA 13,13.13,13,2A,F0.77,E5,B7,21,7C,02,ED.52,CB,7C,670F 
170 DATA El,C2,02,77,CD.F2, 77, B8.C2,02, 77, ED,53.C3,77.03,7091 
175 DATA 56,76,7A,B7,C2,9D,76,7B,FE,04,DA,AC,76,1B,1B,1B,782D 
180 DATA 1B,CD,F2,77,B8,CA,92,76,13,13,13,13,2A,F0,77,23,7F0B 
185 DATA 23,CD,FC,77,3E,0O,32,C5,77,ED,5B,C3.77,2A,F0,77,872A 
190 DATA E5,B7,21,7C,02,ED,52,CB,7C,E1,C2,Ô2,77,E5,CD,E0,9099 
195 DATA 76,E1,13,13,13,13,CD,F2,77,68,02,02,77,03,00.76,9B5E 
200 DATA 2A,F0,77,23,23,CD,F2,77,B3,CA,F2,76.3E,01.32.C5,A08B 
205 DATA 77,C9,3A,C5,77,B7,CA,FC,76,CD,FC,77,3E,00.32,C5.A9A9 
210 DATA 77,C9,3E,01,32,C5,77.C9,3A,38,78,47,ED,5B,EE.77,B13D 
215 DATA ED,53,C3,77,2A,FO,77,7D,B7,20,03,7C,E7,C8,2B,2B,B^ô 
^ 220 DATA CD,F2,77,B8,CA,4D,77,£D,5B,C3,77,13,13.13,13,2A,C064 


68 


CPC n°36- Juillet/Août 1988 











225 DATA F0,77,E5,B7,21,7C,02,ED,52,CB,7C,E1,C2,BD,77,CD,CA30 
230 DATA F2.77,B8,C2,BD,77,ED,53,C3,77,C3,14,77,7A,B7.C2,D402 
235 DATA 58,77,7B,FE,02,DA,67,77, IB,IB,IB, 1B,CD,F2,77,B8,DB5E 
240 DATA CA,4D,77,13,13,13,13.2A,F0,77,2B,2B,CD,FC,77,:æ,E19D 
245 DATA 00,32,C6,77,ED,5B,C3,77,2A,F0,77,E5,B7,21,7C,02,E95A 
250 DATA ED,52,CB,7C,E1,C2.BD,77,E5,CD,9B,77,E1,13,13,13,F295 
255 DATA 13,CD,F2,77,B8,C2,BD,77,C3,7B,77,2A,F0,77,2B.2B,FB28 
260 DATA CD,F2,77,B8,CA,AD,77,3E,01,32.C6,77,C9,3A.C6.77,0.3F2 
265 DATA B7,CA,B7,77,CD,FC.77,3E,00,32,C6,77,C9,3E,01,32,0BC8 
270 DATA C6,77.C9,00,00,00,0O,ED,5B,0D,75,3A,38,78,47,7A,1143 
275 DATA B7,C2,DA,77,7B,FE,04,DA,E9,77, IB,IB,IB, 1B,CD,F2,19EF 
280 DATA 77,B8,CA,CF,77,13.13,13,13,ED,53,EE,77,C9,00,00,20E8 
285 DATA Oô,00,C5,D5,E5,CD,FO,BB,El,Dl,Cl,C9,DD,75,00,DD,2B4A 
290 DATA 23, DD, 74, 00.DD, 23, DD, 73, 00,DD, 23, DD, 72, 00,DD, 23.325D 
295 DATA E5<2A,59,78,23,22,39,78,El,C9,ÛD,2B,DD,56,ü0,DD,39D5 
300 DATA 2B,DD,5E,00,DD,2B,DD,66,00,DD,2B,DD,6E,00,E5,2A,40E8 
305 DATA 39,78,2B,22,39,78,E1,C9,00,00,00,ED,5B,EE,77,2A,4718 
310 DATA F0,77,CD,76,78,CD,66,78,E5,B7,21,7C,02,ED,52,CB,502A 
315 DATA 7C,E1,C0,13,13,13,13,CD,F2,77,B8,C0,CD,76,78,CD,58C9 
320 DATA 66,78,C3,48,7a,C9.C5,D5,E5,CD,EA,BB,El,Dl,Cl,C9,6420 
325 DATA 00,00,00,00,00, 00,3A,36,75,FE,03,CA,A3,78,FE,02,68EB 
330 DATA CA,96,78,FE,01,28,OA,FE.04,CO,3A,2E.75,CD,DE,BB,70F9 
335 DATA C9,E5,D5,C3,B9,78,E5,D5,CB,3D,7D,CB,47,C2,C2,78,7BBD 
340 DATA C3,C8,78,E5,CB,3D,7D,CB,47,D5,C2,B9,78,CB,3B,CB.85D5 
345 DATA 3B,7B,CB,47,20,0C,C3,C8,78,CB,3B,CB,3B,7B,CB,47,8D65 
350 DATA 20,06,3A,2E,75,C3,CB,78,3A,2F,75,CD,DE,EB,D1,E1,9564 
355 DATA C9,00,3A,11,75,B7,C2,06,79,3E,01,32, 11, 75,32,38,9A46 
360 DATA 75,2A,03,75,ll,Al,08,19,22,15,75,2A,03,75,li,01,9D90 
365 DATA 10,19,22,30,75,11,00,18,19,22,32,75,2A,Û3,75, 11, A03E 
370 DATA 32,08,19,22,34,75,CD,41,7A.CD,80,7A,CD,BF,7A,CD,A77E 
375 DATA 30,7C,CD,1C,7D,CD,4F,7D,CD,8A,7D,3A,12,75,FE,01,AEBD 
380 DATA CA,56,79,FE,02,CA,BO,79,FE,03,CA,AB,79,FE,04,CA,B7D4 
385 DATA F7,79,FE,06,CA,47,7A,FE,07,CA,86,7A,FE,08,CA,F2,C164 
390 DATA 7B,FE,09,CA,09,7D,FE,OA,CA,F6,7C,FE,OB,CA,39.7D,1:A03 
395 DATA FE,0C,CA,64,7D,C9,3E,05,32,12,75,21,72,7E,E5,3A,D0AD 
400 DATA 14,75,F5,CD,35,BC.79,B7,20,07.06,1A,ÛE.1A,C3,73,D6BE 
405 DATA 79,05,0D,F1,E1,5F,16,00,19,71,CD,32,BC,C3,41,7A,DD53 
410 DATA 3E,05,32,12,75,21,72,7E,E5,3A,14,75,F5,CD,35,BC,E3BB 
415 DATA 79,FE,1A,20,07,OE,00,06,00,C3,9E,79,OC,04,F1,E1,E943 
420 DATA 5F,16,00,19,71,CD.32,BC,C3,41,7A,3E.05,32,12,75,EE77 
425 DATA 3A,14,75,B7,C2,C9,79,3E,0F,32,14,75,2A,01,75,ll,F3AE 
430 DATA 0F,00,19,22,01,75,C3,E5,79,3D,32.14,75,2A,01,75,F827 
435 DATA 2B,22,0I,75,2A,15,75,E5,CD,C5,7A,E1,2B,2B,2B,22,FE13 
440 DATA 15,75,C3,41,7A,2A,15,75,E5,CD,C5,7A,E1,11,2D,00,04DF 
445 DATA 19,22,15,75,C3,41,7A,3E,05,32,12,75,3A,14,75,FE,09DF 
450 DATA OF,C2,16,7A,3E,00,32,14,75,2A,01,75,11,F1,FF,19.0EF3 
455 DATA 22,01,75,C3,32,7A,3C,32,14,75,2A,01,75,23,22,01,12D7 
460 DATA 75,2A,15,75,E5,CD,C5,7A,E1,23,23,23,22,15,75,03,19AA 
465 DATA 41,7A,2A,15,75,E5,CD,C5,7A,E1,11,D3,FF,19,22,15,211E 
470 DATA 75,CD,CC,7A,C3,3D,7B,3E,05,32,12,75,3A,2E,75,FE,27F8 
475 DATA 0F,C2,5C,7A,3E,0O,32,2E,75,C3,71,7A,3C,32,2E,75,2D71 
480 DATA 2A,30,75,E5,CD,08,7B,E1,23,23,23,22,30,75,03,80,3309 
485 DATA 7A,2A,30,75,E5,OD,08,7B,E1, 11, D3,FF,19,22,30,75,3AEB 
490 DATA OD,19,7B,03,3D,7B,3E,05,32,12,75,3A,2F,75,FE,OF,40AE 
495 DATA C2,9B,7A,3E,00,32,2F,75,03,BO,7A,30,32,2F,75,2A,46C2 
500 DATA 32,75,E5,0D,0E,7B,E1,23,23,23,22,32,75,03,BF,7A,4DB3 
505 DATA 2A,32,75,E5,0D,0E,7B,E1,11,D3,FF,19,22,32,75,0D,5532 U 

CPC n° 36- Juillet/Août 1988 



510 DATA 1F,7B,03,3D,7B,DD,21,F9,7A,03,D0,7A,DD,21,EA,7A,5E27 
515 DATA 2A,15,75,06,05,05,E5,06,03,DD,7E,00,77,DD,23,23,638E 
520 DATA 10,F7,E1,CD,26,BO,01,10,EO,09,00,00,00,40,00,80,6BEB 
525 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,6FAB 
530 DATA 00,00,00,00,00,00,00,00,2A,30,75,03,11,7B,2A,32,7225 
535 DATA 75,3E,00,32,30,7B,03,27,7B,2A,30,75,03,22,7B,2A,777F 
540 DATA 32,75,3E,00,32,30,7B,06,02,05,E5,06,03,3A,30,7B,70B9 
545 DATA 77,23,10,F9,El,0D,26,BC,01,10,EE,C9,00,3A,05,75,8428 
550 DATA 30,6F,26,12,OD,75,BB,3A,14,75,FE,OA,DA,55,7B,OD,8B4A 
555 DATA 8B,7B,C3,64,7B,3E,00,06,30,CD,5A,BB,3A,14,75,06,9291 
560 DATA 30,0D,5A,BB,3A,05,75,30,30,6F,26,12,0D.75,BB,3A,98AD 
565 DATA 14,75,OD,35,BO,79,FE,0A,D2,8B,7B,3E,OO,C6,3O,0D,A04E 
570 DATA 5A,BB,79,06,30,CD,5A,BB,03,90,7B,5F,OE,OA,OD,E1,A8B3 
575 DATA 7B,06,30,0D,5A,BB,78,06,30,0D,5A,BB,3A,05,75,6F,B079 
580 DATA 26,12,0D,75,BB,06,03,3A,23,75,B7,02,B4,7B.21,D5,B727 
585 DATA 7B,03,0D,7B,FE,01,02,BF,7B,21,DB,7B,O3,0D,7B,FE,0125 
590 DATA 02,02,0A,7B,21,DB,7B,03,0D,7B,21,DE,7B,7E,0D,5A,09CF 
595 DATA BB,23,10,F9,C9,46,4F,52,58,4F,52,41.4E,44,4F,52,OFD3 
600 DATA 20,AF,06,08,OB,13,17,91,30,01,81,10,F7,47,7B,17,D408 
605 DATA 2F,G9,3E,05,32,12,75.3A,F1,70,3C,FE,05,20,0C,DD,DAAB 
610 DATA 21,28,70,3E,01,32,F1,70,03,16,70,32,F1,70,DD,2A,E149 
615 DATA F2,70,DD,23,DD,23,DD,5E,00,DD,56,01,DD,22,F2,70,E993 
620 DATA ED,53,F4,70,0D,30,70,09,51,70,79,70,Al,70,09,70.F2A9 
625 DATA 3A,F1,70,32,36,75,ED,5B,F4,70,2A,34,75,06,08,05,F9BB 
630 DATA E5,06,05,lA,77,13,23,10,FA,E1,0D,26,60,01,10,EF,0090 
635 DATA 09,00,00,00,00,00,00,80,80,80,00,00,80,80,80,0(),û465 
640 DATA 00,80,80.80,00,00,80.80.80.00,00,90,BC.3C,00,OO,03E5 



Vous désirez apprendre le morse ? Vous 
possédez un CPC ? Alors, le numéro 64 de 
Mégahertz est fait pour vous ! 

Remplissez le bon de commande ci-dessous 
et adressez-le aux : 

Editions SORACOM - La Haie de Pan 

35170 BRUZ__ 

I-^o^oTcOMMANOe 

I que de 20 F. 












645 DATA 80,80,80,00,00,00,00,00,00,OC-,00,00,00,00,00,CO,0B25 
650 DATA CO,CO,00,00,00,00,00,00,00,CO,CO,CO,00,00,00,00,0EE5 
655 DATA 00,00,00,CO.CO,CO,00,00,00,00,00,00,00,00,»,00,1125 
660 DATA 00,00,00,00,00,00,00,40,40,40,00,00,8CU80.80,00,1365 
665 DATA 00,40,40,40,00,00,80,80,80,00,00,40,40,40,00,00,1665 
670 DATA 80.80,80,00,00,00,00,00.00,00,00,00,00,»,00,CO. 1BA5 
675 DATA C0,C0,O0,OO,CÛ.CO,CO,OO,0O,CO,C0,CO,»,»,C0,CO,2O25 
680 DATA CO,00,00,CO,CO,CO,00,00,CO.CO,CO,»,00,»,»,00.2565 
685 DATA 00,04,C9,7C,C9,7C,3E,05,32,12,75,3A,37,75,3D,FE,2B10 
690 DATA IF,C2,IF,7D,3E,FF,C3,IF,7D,3E,05,32,12,75,3A.37,3096 
695 DATA 75,3C.FE,FF,C2,1F,7D,3E,20,C3,1F,7D,3A,37,75,FE,3843 
700 DATA 20,D2,26,7D,3E,23,32,37,75,3A,05,75,6F,26,OF,CD,3D3C 
705 DATA 75,BB,3A,37,75,CD,5A,BB,C9,3E,05,32,12,75,3A,63,4396 
710 DATA 7D,3C,FE,04,C2,49,7D,3E,00,32,63,70,32,38,75.3A,4942 
715 DATA 05,75,3C,3C,6F,26,0F,CD,75,BB,3A,63,7D,C6.E6.CD,5068 
720 DATA 5A,BB,C9,01,3E,05,32.12,75,3A,9B,7D,B7,C2.7D,7D,5708 
725 DATA 3E,01,32,9B,7D.32,3A,75,3E,4A,C3,87,7D,3E,00,32.5C31 
730 DATA 9B, 7D,32,3A,75,3E,43,32,9C,7D,3A,05,75,3C. 6F, 26,617B 
735 DATA OF,CD,75, BB, 3A,9C,7D.CD,5A, BB, C9,00,43,00,00,00,67C8 
740 DATA 3A,5E,7E,B7,C2,02,7E,21,E0,C6,22,03,75,21,00,67,6DC0 
745 DATA 22,18,75,CD.A5,91,CD,8D,8C,3E,01,32,05,75,32,5E,73D3 
750 DATA 7E,21.00,C0,22, lA, 75,21,»,CO,22,03,75.2l,00,30,77AF 
755 DATA 22.1S,75,2A,i5,75,ll,20,F9,19,22,15,75,2A.30,75,7BD0 
760 DATA 11, 20,F9,19,22,30,75,2A.32,75,11,20,F9,19,22,32,8042 
765 DATA 75,2A,34,75,11,20,F9,19,22,34,75,CD,85,7E,CD,D2,8707 
770 DATA 7a,C9,AF,32,5E,7E,21,00,C0,22,03,75,21,»,30.22,8BF3 
775 DATA 18,75.CD,A5,91,CD,8D,8C,3E,17,32,05,75,21,F0,C0,933B 
780 DATA 22,1A,75,2A,15,75,11,EO,06,19,22.15,75,2A,30,75,972B 
785 DATA 11,E0,06,19,22.30,75.2A, 32, 75, 11. EO,06,19,22.32.9837 
790 DATA 75.2A,34,75,11,£0,06,19,22,34,75.21,00,67,22,18.9F1C 
795 DATA 75,21, EO, C6,22,03,75,CD,85,7E,CD,D2,78,C9,00,00,A6A2 
800 DATA 00.C0,0C,CC.30,F0,3C,fC,03.C3,0F,CF,33.F3,3F,FF,AE9A 
805 DATA 00,00,00,1A,02,03,18,06,01,16,06,01,10,09,0£,17,AF33 

SIO DATA 07,09.00,00, 00, ED,5B,18, 75,2A,03,75,E5.06,19,C5.B3e2 
815 DATA E5,01,5Û,0Û,ED,B0,E1.CD,26,BC,C1,10,F2,E1,1E,40,BK7 
820 DATA 06,13,C5.£5,06,50.73,23,10,FC,El,CD,26.BC,3A,11.C282 
825 DATA 7F,B7,C2,BC,7E,1E,80,3E,01,C3,CO,7E,iE,40.3E,00,C92E 
830 DATA 32,11.7F,Cl,lû,DC,3A,05,75,3C,6F,26,ll,E5,CD,75,CF5A 
835 DATA BB,3E,65,CD,5A.BB,E1.2C,CD,75,BB,3E,63,CD,5A,BB,D827 
840 DATA 3A,05.75,6F,26,ll,CD,75,BB,3E,ôD,CD,5A,BB,CD,26,DEFE 
345 DATA 7F,CD,C0,8C,2A,03,75,11,51,08,19,11,60,7E,06,10,E3C0 
850 DATA C5,D5,E5.CD,12,7F,El,ll,03,0O,19,Dl,13,Cl,10,F0,EB5û 
855 DATA C9,00,06,06,E5,3E,03,F5,1A,77,23,F1,3D,20,FS,E1,F21B 
860 DATA CD,26,BC,10,EF,C9,11,01,08,CD,2F,7F,11,A1,00,2A,F803 
865 DATA 03,75,19,06,07,E5,3E,30,36,00,23,3D,20,FA,El,CD,FD52 
870 DATA 26,BC,10,F1,C9,00,3A,53,82,B7,C2,D4,7F,3E,01,32,044A 
875 DATA 53,82,32,24,75,11,h6,B2,1A,FE,FF,CA,67,7F,06,FF,0BEF 
880 DATA CD,39,BB,13,C3,5a,7F,21,E0,C6,22,Û3,75.21.00,67,1246 
835 DATA 22,18,75,21,D0,5A,22,1C,75,21,60,7E,22,01,75,3E,16C8 
890 DATA 17,32,05.75,3E, 05,32, OC, 75,21,50, CD,22,07,75, .3E, 1A9B 
895 DATA 89,32,0A,75,32,1F,75,3E,80,6F,26,Û0,3E,»,22,0F,1E5D 
900 DATA 75,32,09,75,32,21,75,32,23,75,32,lE,75, 6F, 22,00,2277 
905 DATA 75,3£,0Û,32,13,75,32,14,75,32,2E,75,32,2F.75,32,267C 
910 DATA 11,75,32,0B,75,CD,BD,8C,CD,C0,8C,CD,B5,7E,CD,D2,2F22 
915 DATA 78.C3,DF,7F,CD,85,7E,3E,00,32,OB,75,CD,D2,78,CD,375F 
920 DATA AD,82,3A,27,75,FE,01,20,06,3E,03,32,06,75,C9,3A,3C7A 
925 DATA 13,75,FE,01,C2,05,80,3E,00,32,'l3,75,CD,A0,7D,CD.42F7 ^ 


930 DATA D2,7B,C3,DF,7F,CD,09,BB,FE,E0,DA.13,30,CD.54,82.4CE1 
935 DATA C3,DF,7F,FE,53,CA,lD,80,FE,73,C2,36,80,3E,01,32,55i4 
940 DATA 06,75.CD,A5,91,3E,00,32,0B,75,CD,AD,B2,CD,eD.3C,5C64 
945 DATA 3E,02,CD,OE,BC,C9,FE,4C,CA,40,30,FE,ôC,C2,4B.80,64CF 
950 DATA 3E,û2,32,06,75,3E,02,CD,0E.BC,C9,FE,47,CA,55,e0,6B40 
955 DATA FE, û 7, C2,66,80, 3E,Oo. 32, UB, /5, Ll', AD, 8,;, CD, A5,91.733C 
960 DATA CD,06,BB,C3,D4,7F.FE,10,C2,88,30,21,»,30,ED,5B.7B51 
965 DATA 01,75,lA,77,23,7C,FE,70,20,F8,11,00,C0,21,00.30.8Û9F 
970 DATA 01,Û0,40,ED,BÛ.C3,D4,7F,FE.32,C2,9D.80,3A.0C.75,385D 
975 DATA FE,1E,DA,DF,7F.D6.0A,32,0C,75,C3.DF,7F,FE,31,C2.9156 
96o DATA B2,80,3A, OC, 75, P’E, E6, D2, DF, 7F, C6,0A, 32, OC, 75. C3.999D 
985 DATA DF,7F.FE,51,CA,BC,0O,FE,7i,C2,DO,8ô,CD,3B,BC,37,A3CC 
m DATA 3F,05,OD.79,30,04,3E.lA,4F,47,CD.38,BC,C3.DF.7-,499 h 
995 DATA FE, 57, CA, E-A. 80, FE. 77. C2, EE, 80, CD, 3B, BC. 04. OC. 79. B305 
1000 DATA FE. 1B,20,04.3E,00,4F,47,CD,33.BC.C3.DF,7!^.FE,43,BA39 
1005 DATA Ch,F8. 80,FE, ô3. C2,FD,80,3E.05.C3,59,81 . FE,44.CA,C407 
1010 DATA 07,Sl,FE,64.C2.0C,ai,3E,02.C3,59.31,FE,46,CA.16,CB4i 
1015 DATA ei,FE,66,C2,lB,81,3E,01,C3,59,ei.FE.41,CA,25,8!,D30F 
1020 DATA FE,61.C2,2A,31.3E,04,C3,59,31.FE,42,CA,34.SI,FE,DB77 
1025 DATA 62,C2,39,81.3E,07,C3,59,ei,FE,52,CA,43.ai,FE,72,E385 
1030 DATA C2.48,81,3E,03,C3,59,81,FE,50,CA,52,81,FE,70,C2.EC09 
1035 DATA 5F,ai,3E,00,32,24,75,3E,03,32,21,75.C3,DF.7F,FE,F2lH 
1040 DATA 7B,CA,69,SI,FE,5B,C2,6E,81,3E,06,C3,C5,81,F£.7D,FBIB 
1045 DATA CA,7B,81.FE,5D,C2,7D,81.3E.Û7,C3,C5.B1,FE,3E,CA,044D 
1050 DATA 87.31,FE,2E,C2,BC,81,3E,09,C3,C5,SI,FE,3C,CA,96,0D3A 
1055 DATA Bl,FE,2C,C2,9B,81,3E,0A,C3,C5.Bl.FE,5A.CA,A5,6l,165C 
1060 DATA FE,7A,C2,AA.81,3E,0B,C3,C5,81,FE,4A,CA,&4.81,FE,2058 
1065 DATA 6A,C2,B9,B1,3E,0C,C3,C5,81,FE,54,CA,C3,81,FE,74,29E3 
1070 DATA C2,CB,81,3E,08,CD,9F,82,C3,DF,7F,FE,4D,CA,D5.81,33B1 
1075 DATA FE.6D,C2,EC,81,3A,23,75,3C,FE.04,DA,EO,B1,3E,00,3BD4 
1080 DATA 32,23,75,CD,59,BC,CD,D2,78,C3,DF,7F,FE,20,C2,DF,4577 
1085 DATA 7F,3E,00,32,06,75,32,17,75,CD,AD,S2,CD,DB,8C,CD.4CA1 
1090 DATA D2,78,CD,09,BB,FE,E0,DA,10,82,CD,54.82,C3,FC,81.56A9 
1095 DATA FE,20,C2,FC,81,3A,21,75,FE,02,CA,DF,7F,3A,05,75,5EB2 
1100 DATA FE,0A,D2,30,82,3A,'0A,75,FE,lE,D2,41,a2,C3,38,82,6625 
1105 DATA 3A,0A,75,FE,A5,DA,41,82,CD,A5,8C,CD,Aû,7D,C3,4A,6F13 
1110 DATA B2,CD,A5,8C,CD,85.7E,CD,D2,78,3E,00,32,0BJ5,C3,772D 
1115 DATA DF,7F,00,00,FE,F4,CA,63,82,FE,FB,CA.63,B2,FE,F0,81BF 
1120 DATA C2,68,82,3E,01.C3,9F,82,FE,F9,CA,77,82,FE.F5,CA,SC05 
1125 DATA 77,82,FE,F1,C2,7C,82,3E,O2,C3,9F,B2,FE,FA,CA,0B,961E 
1130 DATA B2,FE,F6,CA,8B,82.FE,F2,C2,90,82,3E,03,C3,9F,82,A054 
1135 DATA FE,FB,CA,9D,82,FE.F7,CA,9D,82,FE,F3,C0,3E.04,32,AB39 
1140 DATA 12,75,CD,D2,78,C9,OE,14,OC,04,OB,FF,OO,3A,OB,75,6096 
1145 DATA B7,C2,C7,82,3E,01,32,0B,75,32,4D,86,3E,00,32,4C,B60A 
1150 DATA 36,32,22,75,32,A7,86,3A,3A,75,B7,C2,D4,82,CD,0C,BD49 
1155 DATA 83,C3,D7,82,CD,15,83,3A,27,75,FE,01,C8,3A,21,75,C4BA 
1160 DATA B7,C8,FE,07,CA,FB,62,CD,09,BB,FE,7F,C2,FB,B2,3A,CF0C 
1165 DATA 4C,86,B7,28,06,CD,94,87,CD,AE,86,CD,09,BB,FE,20,D75B 
1170 DATA CA,06,83,C3,C7,82,CD,1C,87,C3,C7,82,CD,A0,75,3A,E052 
1175 DATA 39,75,C3,1B,83,CD,24,BB,E6,1F,CB,27,5F,16,00,DD,E753 
1180 DATA 21,30,83,DD,19,DD,5E,00,DD,56,01,D5,DD,E1,DD,E9.EFE5 
1185 DATA 70,83,4B,84,A5,84,70,83,EA,84,70,e3,7û,83,EA,84,F8B5 
1190 DATA 43,85,70,83,70,83,43,85,70,B3,4B,84,A5,84,70,83,FFD9 
1195 DATA OF,84,3F,84,44,84,70,83,3A,34,70,83,70,B3,3A,B4,064C 
1200 DATA 35,84,70,83,70,83,35,84,70,83,3F,84, 44, 84,70,83,0015 
1205 DATA CD,B3,85,3A,21,75,B7,CA,B3,85,FE,02,CA,94,83,FE,1682 
1210 DATA 03,CA,BF,83,FE,04,CA,D3,83,FE,05,CA,E7,83,FE,Û7,1FEF 


70 


CPC n° 36-Juillet/Août 1988 






1215 DATA CH,FB.83,C9,3A,4C,8à,B7,CB,3E,0û.32,4D,B6,CD,Aa.2e43 ^ 
1220 DATA 83,CD,E3,35,CD,A8,83,C9,2A,50,86,ED,5B,4E,3è,CD,31A5 
1225 DATA C0,BB,2A,0F,75,ED,5B,ÛD,75,2B,2B,CD,F6,BB,C9,3A,39àF 
1230 DATA 4C,86,B7,C8,3E,ô0,32,4D,aè,CD,38,89,CD,E3,35,CD,4193 
1235 DATA 3B,89,C9,3A,4C,B6,B7,CB,3E,0Ci,32,4D,36,CD,B0,88,4SF0 
1240 DATA CD,E3,B5,CD,B0,88,C9,3A,4C,36,B7,C8,3E,00,32,4D,513B 
1245 DATA 86,CD,1E,8C,CD,E3,85,CD,1E,8C,C9,3E,01,CD,59,BC,59CE 
1250 DATA CD,6C,8A,CD,E3,85,CD,6C,3A,3E,00.CD,59,BC,C9,3A,62AC 
1255 DATA 21,75,B7,CA,88,85,FE,01,CA,A8,86,FE,û2,CA,Fl,85,6C07 
1260 DATA FE,03,CA,52,B6,FE,04,CA,D1,37,FE,05,CA,CE,8B,FE,75F2 
1265 DATA 07,CA,A4,8A,C9,CD,43,85,18,0D,CD,EA,84,18,06,CD,7D9C 
1270 DATA 4B,84,18,O3,CD,A5,34,CD,0F,84,C9,3A,0A,75,B7,CA,84DF 
1275 DATA 70,83,3A,A7,86,FE,01,C2,78,84,3A,21,75,FE,05,20,8BE9 
1280 DATA 06,ED.5B,eD.01.18,04,ED,5B,50,86,2A,OF,75,7C,BA,91E3 
1285 DATA C2,75,84,7D,B&,D2,70,B3,CD,F9,Bù,3A,0A,75,3D,32.9AoF 
1290 DATA 0A,75,2A,07,75,CD,29,BC,22,07,75,CD,E3,85.CD.70,A0F6 
1295 DATA B3,'2A. 1C.75,11,B0,FF, 19,22,1C,75,3A, 1F,75,3D,32.A5FD 
1300 DATA 1F.75,C3,D7,34,3A,0A,75,FE,C7,CA,70,83,CD,F9,86,AF36 
1305 DATA 3A,0A,75,3C,32,0A,75,2A,07,75,CD,26,BC,22,07,75,B3CF 
1310 DATA CD,E3,B5,CD.70,83,2A,1C,75,11,50,00,19,22,1C.75,B9AC 
1315 DATA 3A,1F,75,3C,32,1F,75,06,00,3A,OA,75,57,3E,C8,92.BE2A 
1320 DATA 4F,CB,21,CB,10,ED,43.0F,75,C9,2A,07,75,3A,Ô9.75,C41B 
1325 DATA E7,CA,70,a3,3A,A7.86,FE,01,20,lE.3A.21,75,FE,05,C&0ü 
1330 DATA 20,06,ED,5B,B4,01,13,04,ED,5B,4E,86,2A,0D,75,7C,D059 
1335 DATA BA,C2,16,85,7D,BB,DA.70,83,3A,09,75,CB,47,C2,33,De34 
1340 DATA 35,2B,22,07,75,2A,1C,75,2B,22,1C,75,3A,1E,75.3D,ÛC25 
1345 DATA 32,1E,75,3A,09,75,3D,32,09.75,CD,70,83,CD,E3,85,E264 
1350 DATA C3.75,35,2A,07,75,3A,09,75,FE,9F,CA,70,33,3A,09,E93C 
1355 DATA 75.CB,47,CA,6&,85,23,22,07.75,2A,1C,75,23,22.1C,EE57 
1360 DATA 75,3A.1E,75,3C,32,1E,75,3A,09,75,3C,32.09,75,CD,F30B 
1365 DATA 70,83,CD,E3,85,06,00,3A,09,75,4F,CB,21,CB,10,CB.F9D2 
1370 DATA 21,CB,10,ED,43,0D,75,C9,2A,07,75,CD.91,85,2A,1C,0013 
1375 DATA 75,ED.5B.01,75,3A,09,75,CB,47,C2.A9,B5,1A.E6,AA,07AF 
1380 DATA 47,7E,E6.55,B0,77,C3,B2,85.1A,E6,55,47,7E,E6,AA,107A 
1385 DATA B0,77,C9,CD,C0,85,CD,DE,85,CD,C0,85,CD,DE,B5,C9,IBB" 
1390 DATA 3A,09,75.CB,47,C2,CF,a5,DD,21,DD,35,C3,D3,35,ÛD,24EF 
1395 DATA 21,DC,85,2A,07,75,DD,7E,00,AE,77,C9,40,BO,06,1E.2&44 
1400 DATA C3,E7,85,3A,0C,75,47,3A,0C,75,3D,C2,EA,85.10,F7,32A5 
1405 DATA C9,3A,22,75,B7,C2,22,S6,CD,63,87,3E.01,32,4C,B6,395A 
1410 DATA 32,40,86,32,22,75,ED,5B,0D,75,ED.53,4E,86.2A,0F.3F3F 
1415 DATA 75,2B,2B,22,50,86,CD,C0,BB,3E,01,CC,59,BC,CD.A5,46DD 
1420 DATA BC,C9,3A,4D,86,B7,CO.3A,14.75,CD,DE,BB.3A,23,75,4E3i 
1425 DATA CD,59,BC,ED,5&,4E,86,2A,50,86,CD.C0.BB,ED,5B,0[:,574C 
1430 DATA 75,2A,0F,75.2B,2B,CD,F6,BB,C3.AE,86,00,00,00.00,5D3A 
1435 DATA 00,00,3A,22,75,B7,C2.84,B6,CD,63,67,3E,01,32,4C,6302 
1440 DATA 86,32,40,86,32,22,75,32,A7,86,ED,5B,0D,75,ED,53,ô9BF 
1445 DATA 4E,86,2A,0F,75,22,50,86,CD,C0,BB,3E,01,CD,59,BC,70A2 
1450 DATA CD,A5,8C,C9,3A,4D,B6,B7,C0,3A,23,75,CD,59,BC,3A,78D& 
1455 DATA 14,75,CD,DE,BB,3A,24,75,B7,20,06,CD,F5,89,C3.A4,B12C 
1460 DATA 86,CD,38,B9,C3,18,9C,00,CD,A5.91,CD,EE,75,3E,01,8919 
1465 DATA 32,40,86,32,24,75,3E,00,32,4C,86,32,22,75,32,0B,BD31 
1470 DATA 75,32,21,75,32,A7,86,CD,8D,8C,3E,01,CD,DE,BB,3A,9492 
1475 DATA 23,75,CD,59,BC,3A,05,75,FE,0A,D2,E7,86,3A,0A,75,9BC0 
1480 DATA FE,lE,30,OE,C3,EE,86,3A,OA,75.FE,A5,38,04,CD,AO,A356 
1485 DATA 7D,C9,CD,85,7E,CD,D2,7B,C9,3A,4C,B6,B7,Cû,3A,05,ACOE 
1490 DATA 75,FE,OA,D2,OF,87,3A,OA,75,FE,1E,DO,C3,15,87.3A,B331 
1495 DATA 0A,75,FE,A5,DB,CD,AO,7D,CD,D2,78,C9,3E,O0,32,17,BB7C 


1500 DATA 75, CD, 3ù, 37, CD, DB, SC, CD, 09, BB, FE, 20, C2,24,3:^. CD, C49B 
1505 DATA A5,8C,CD,F9,B6,C9,2A,03,75,lE,40,06.1B,C5,E5,ô6.CBAC 
1510 DATA 50,73,23,10,FC,E1,CD,26,BC.3A,62,37,B7,C2,57,87.D3A8 
1515 DATA 1E,80,3E,01,C3,5B,S7,1E,40,3E,00,32,62,97,C1,10,DSB2 
1520 DATA DC,C9,00,3A.1E,75,32,CD,37,3A,1F.75,32,CE,37.3A,DF39 

1525 DATA 09,75,32,CF,87,3A,OA.75,32,DO.37,2A,OD.75,22,C5,E514 
1530 DATA S7,2A,0F,75,22,C7,37,2A.lC,75,22,C9,87,2A.0‘^,75,EAeC 
1535 DATA 22,CB,67,C9,3A,CD,B7,32.1E,75,3A,CE,B7,32,1F,75,F171 
1540 DATA 3A.CF,87.32,09,75,3A,D0,37,32,0A,75.2A,C5,87.22,F7SB 
1545 DATA 0D.75,2A.C7,87,22,0F,75,2A,C9,87,22,1C,75.2A.CB,FD4D 
1550 DATA 87,22.07,75,C9,00,00,00,00,00,00,00,00,00,00.00,FF3B 
1555 DATA 00,3A,22,75,B7,C2,12.88,CD,63,37,3E,01,32;4C.86,0519 
1560 DATA 32.40,86.32,22,^5,32,AF,88,32,A7,96,2A,1C,75,22,0ABC 
1565 DATA C5,SA,3A,09,75,32,C9,8A,ED,5B,0D,75,ED,53,4E,86,llFo 
1570 DATA 2A,0F,75,22,50,B6,CD,C0,BB,3E.Û1.CD,59,BC,CD,A5.1977 
1575 DATA 91,C9,3A,AF,B8,B7.CA,7B,3a,3A,4D,86.B7,C0,3E,00.2138 
1580 DATA 32,A7,36,32.AF,a3,3E.01.32,4D,86.2A,0D,75.ED,5&,:738 
1565 DATA 4E,86,ED,52,22,A8,88,2A,0F,75,ED,5B,50,&6,ED,52.2EFe 
1590 DATA 22,AA,88,3A,CF,37.47,3A,09,75,90,3C,32,AD,83,3A,3548 
1595 DATA CE,97,47,3A,1F,75,90,3C,32,AE,B8,ED,5B,0D,75,ED.3C9D 
1600 DATA 53,AO,38,2A,OF,75,22,9C,36,ED,5B,4E,36,ED.53.A2.440 h 
1605 DATA 88,2A,50.86.22,9E,6B,CD.94,97,C9.3A.4D.86,B7,CO.4C0F 
1610 DATA CD,D0.8A,3A,38,75,B7.CA.3E,B8.FE,01,20,03,CD.8D.5430 
1615 DATA 8C,3E,00,32,AF,Bb,3E,ùi,32.4D,B6,C9,00,00,Ou,00.597u 
1620 DATA 00,00,00,00,00,00,00,00 ,ijO, 00,00,00,00.00,00,00.5370 
1625 DATA 3A,A7.86,FE,01,CA,3B,89,ED,5B,OD,75.2A.OF,75.2B,5F04 
1630 DATA 2B,CD,CO,BB,21.O0,OO.ED.5B,A8,88.D5,CD,F9,&B.Dl,6B37 
1635 DATA 2A,0D.75,19,EB.2A,0F,75,2B,2B,CD,C0,BB,ll,00,00,6D4i 
1640 DATA 2A,AA,98,CD,F9,BB,ED,5B,0D,75,2A,0F,75,2B,2B,CD.74BC 
1645 DATA C0,BB.ll,00,00,2A,AA,Be,E5,CD,F9,BE,El.ED,5B,0F,7D42 
1650 DATA 75,19,2B,2B,ED,5B,OD,75,CD,CO,BB.21,00,00,ED,5E.33A1 
1655 DATA A8,88,CD,F9,BB,2A,9C,B6,2B.2B.22,84,B9,ED,5B,A0.BC0D 
1660 DATA 88,ED,53,66,39.2A,9E,86,2B,2B,22.66,S9,ED.5B,A2.93 h' 
1665 DATA BS,ED,53,8A,B9,C3,5B,e9.2A,0F,75.2B,28,22,84,89,9A59 
1670 DATA ED,5B,0D,75,ED,53,36,39.2A,50,86,::6,2B,22,33,3=',A0FB 
1675 DATA ED,5B.4E,36,ED,53,3A,B9,CD,C0,BB,2A,88.89.ED.5B.AA35 
1680 DATA 36,39,CD,F6,BB,2A,34,39,ED.5B,86.39.CD,F6,eB.2A.B3F3 
1685 DATA 84,89,ED,5B,BA,89,CD,F6,BB,2A,B8,89,ED,5B,eH,a9,BD74 
1690 DATA CD,F6,BB,C9,00,00,00,00.00,00,00,00.00,00,()0,00,COBB 
1695 DATA C5,D5,E5,CD,EA,BB,E1,D1,C1,C9.3A,36,75,FE,03,CA,CB98 
1700 DATA C7.89,FE.02,CA,BA,89,FE,01,28,OA,FE,04.CO.3A,2E.D350 
1705 DATA 75,CD,DE,BB,C9,E5,D5,C3,DD,B9'.E5,D5,CB.3D,7D,CB.DEE1 
1710 BATA 47,C2,E6,99,C3,EC,39.E5,CB.3D,7D.CE.47.j5.C2,DD.E931 
1715 DATA e9,CB,3B,CB,3B,7B,CB,47,20,0C,C3,EC,S9.CB,3B,CE,FlD6 
1720 DATA 3B,7B,CB,47,20,06,3A.2E,75,C3,EF,39.3A,2F,75.CD,F889 
1725 DATA DE,BB,D1,E1,C9,2A.0D,75,ED,5B,4E.86,&7,ED,52.CB,0226 
1730 DATA 7C,CO,2A,50,36,ED.5B,OF.75,B7,ED,52,CB.7C,CO,CB,OAFe 
1735 DATA 3C,CB,lD,23,E5,Cl,2A,50,B6,2B,2B,22,8E,89,C5,2A.ll6l 
1740 DATA 8E.39,ED.5B,4E,a6,D5,CD,C0,BB,Dl,D5,CD.9A.89,CD,lC14 
1745 DATA 90.89,E5,B7,2A,0D,75,2B,2B,2B,2B,ED,52,CB,7C,E1,23B8 
1750 DATA C2,50,8A,13,13,13,13,CD,9A,39,CD,90,89,C3.32.3A,2AC5 
1755 DATA D1,2A.8E,69,2B,2B,22,8E,89,C1,CD.09.BB,FE,7F,C6,32FD 
1760 DATA 0B,78,B7,C2,1E,3A,79,B7.C2,1E,8A,C9,2A,0F,75.2B,39DD 
1765 DATA 2B,ED,5B,0D,75,CD.C0,BE,21,00,00,11,1C,00,CD,F9,402E 
1770 DATA BB,21,F2,FF,11,00,00,CD,F9,BB,21,00,00,11,E4,FF,47A2 
1775 DATA CD,F9,BB,21,0E,00.11,00,00,CD,F9,BB,CD,09,BB,FE,4F73 
^ 1790 DATA 7F,28,1C,C9,2A,0F,75,2B,2B,ED,5B,0D,75,CD,CO,68,5615 


CPC n°36- Juillet/Août 1988 


71 







1785 DATA 3A,37,75,CD,FC,B&,CD.A5,9î,CD,8D,SC,CD,D5.Sû,3E,5FŒ 
1790 DATA 00.32,21,75, l9, 00,00,00,00,00, OCi, 00,00,00,00.0(/,6l5F 
1795 DATA 3A.09,75,47,3E,Aù,Ç0,47.3A,AD,38,&8,DA.E0.BA,7B.68F6 
1800 DATA 32,2A.8B.3A.0A.75.47.3E,C3.90,47,3A,AE.88,B8.D2.6FB4 
1805 DATA F3.8A.47,ED.5B,C5,8A.2A,07.75.ED,53.CB,8A,22,CD.7839 
1810 DATA 8A.3A,C9,8A,32.C7,3A.3A.09.75.32,C8.8A,C5,E5,C'5,308E 
1815 DATA 3A,2A,eB,F5,CD,2B,8B.F1.3D.C2,13.88,Dl,21,50,00,8705 
1820 DATA !9.EB,E1,CD,26,BC,C1,!0.D1.C9,00,CD.9A.8B.2A,CD,90AD 
! 825 DATA 6A.3A,C8,8A,CB,47,C2.65.SB,3A,38,75,B7.CA.45.8B.98BF 
1830 DATA FE.02.C2.57.8B,3A,CA,eA.Eo,AA,BT,CA,92.3B,47,7E.AlE4 
1S35 DATA E6,55, BO,77,C3.92,8B,7E,Eû, 55. 47,3A,CA.SA. E6, AA,AB44 
1340 DATA e0,77,C3,92,3B,3H,3B,75,B7,CA,71,9B.FE,02.C2,83,B3F4 
1845 DATA 8B,3A,CA,8A,EÉi,55,B7,CA,aE,8&,47,7E,E6,AH.B0,77,BD5E 
1850 DATA C3,BE,aB,7E,E6,AA,47,3A.CA,3A.E6,55,B0,77,23,22,C5C4 
1855 DATA CD,SA.3A,C8,8A,3C.32,CS,8A,C9,ED,5B,CB,SA.3A.C7,CECE 
1360 DATA 8A.CB,47,C2,S3.3E,lA,Eo.AA,47,CB,0F,B0,32.CA.3A,D7ûB 
1865 DATA C3,C6,8B,lA,E6.55.47,CB,07.B0.32,CA,8A,ED,5B.CB,EÛ3£i 
1870 DATA SA.13.ED,53,CB.8A.3A.C7.8 h, 3C,3;,C7,8A.E9,3A,22,E~D7 
1875 DATA 75,E9,C2,FD.3B,CD,63.87,3E,02.32,4C.86,32,4D.8ü.EF4C 
1880 DATA 32.:2,75,32.A7,3ii,ED,5B.0D,75,ED.53,34.0!,2A,0F,F53C 
1885 DATA 75,22,8D,0î.3E,01,CD,59.BC,CD,A5,8C,C9,3A,4D.8t..FC56 
1890 DATA B7.C0.3A,23.■5.CD.59,BC.3A.14.75,32.A8.01.3E,01.e:5E 
1895 DATA 32.:7,75.3E,û3.32.0è,75.:D.94,S7.C3,AE.eû,2A,0D,0630 
1900 DATA 75,ED.5E,34.01.ED,52.22.96.C!,CB,25.C5,14.^D,2F.0EE3 
i9-:5 DATA ôF,7C,2F.i7,23,2;.22.7a,8C.2H,8D.Cl,ED.5B.0F.75,î456 
1910 DATA ED,52.23.:3,22.9F,jI.CB.25,CB.l4.2:.'A.SC.E2.3B.lAûC 
.915 DATA 8 h , 01.2A, 'jF, 75. iB, iB, CD. CO. BB, 2A. ~h. 6C. 11,00,00,1 FEE 
1920 DATA CD,F9,BB.ED.5&.0D.75.2H,8D,Ol,CD,C0.ES.ED,5B,7e,29F9 
1925 DATA SC.2î.00.00.CD,F9,BB,C9,(X?,00,CiC',00,00,00,00,00,2CF0 
1930 DATA OO.OO.OO.OO.OO.OO.O’O.OrO.iXT.OO.OO.OO.OO. 11.00,30.2r'3l 
1935 DATA 21,00,CO.06.C8.C5,E5,01,50,00,ED,BO,El,CD,26,BC,3506 
1940 DATA Cl. 10,F2.C9,'OO, 11 ..JO,30,21,'Xj,CO,06.C8,C5,E5,'06.3834 
1=45 DATA 50,1A,77,23,13,10.FA,E1,CD,:6,BC,C1.10.EF,00,00,41A5 
1950( DATA !1,72,7E,1 h,47,48,3E,iX',F 5,D5,CD.32,BC.D1.13,1A.4S1Û 
1955 DATA 47,48,Fl,3C,FE,10,C2.C8.8C,C9,00,3A,05.75,FE.OA,4F75 
I960 DATA D2.E9,3C,21.=0,CO,C3,EC.8C,21,OO,CO,22.1A.75.3A,5794 
1965 DATA 17,75,B7,C2,0B.8D.3£,01,32,17,75,2A,01.75.22,AF,5C9F 
1970 DATA 3D,CD,C3,3F,C9.00,00,00,00,00,00,3A,3A,75,B7,C2,6276 
1975 DATA 16,8D,CD.IA,SD,C9,CD,23,8D,C9.CD.A0.75.3A,39,75,6Aô6 
1980 DATA C3,26,8D,CD,24,BB,E6,1F.CB,27,5F,16,00.DD,21.3E.713Û 
1965 DATA SD,DD,19,DD,5E,00,DD,56,Ûi,D5,DD.E!.DD,E9,80,8D,7A86 
1990 DATA 02.SE,46,8E.80.8D,9C,8E,80,8D,30,BD.9C,SE,EA,8£,âZDF 
1995 DATA 80,BD, 80,8D. £A, 8E,B(;, BD,02,3E, 46,8E.80,8D,FE,SD,8B7A 
2000 DATA FO,BD,FT,BD,80,3D,E9,BD,80,8D,80,SD,E9,3D,E2.BD,95FD 
2005 DATA 3O.SD,8O,8D,E2,3D,8O,0D,FO,3D.F7,8D,BO,3D,8O.BD,9FAE 
2010 DATA CD.97,9D,CD,8D,3D,CD,97.8D,CD,8D,8D,C9,06,50,3E,A8BB 
2015 DATA 60,3D,20,FD,10,F9.C9,2A,07,8D,06,04,E5,3E,CÔ,AE,AFA0 
2Ci20 DATA 77,23,3E,C0,AE,77,E1,F5,CD,26,BC,F1.10,EE,C9,01,B89B 
2025 DATA 75,DD,2A,01,75,2A,1C,75,3A,Ô9,75,CB,47,C2,CC,8D,BF2D 
2030 DATA 7E,E6,55,47,DD,7E,ô0,E6,AA,C3,D5,8D,7E,E6,AA.47,C892 
2035 DATA DD,7E,00,E6,55,BO,77,DD,7E,00,5F,2A,07,BD,CD,9C,D030 
2040 DATA 8F,C9,CD,EA,SE,CD,B1.8D,C9,CD,9C,3E,CD,B1,3D,C9,DB6C 
2045 DATA CD,02,8E,CD,B1,8D,C9,CD,46,8E,CD,B1,SD,C9,CD,B1,E590 
2050 DATA 8D,C9,3A, IF,75.B7,CS.3A,OA,8D, B7, CA,42.8£.3D,32.ECC4 
2-055 DATA 0A,8D,3A, 1F,75,3D,32,1F,75,3A,OA,75,3D,32.0A,75,FOD3 
2060 DATA 2A,1C.75,11,B0,FF.19,22,1C,75,2A,07.8D.CD.B6,8F,F6Eh 
2065 DATA 22,07,8D,CD,80,BD,2A,07,75,CD,29,BC,22,07,75,C3,FD33 ^ 


‘2070 DATA 85.8E,CD,C3,3F,C9.3A,1F.75.FE,CS,C8.3A.0A.3D,FE,0659 
2075 DATA 2B,CA,98,8E,3C,32,OA,8D,3A,!F,75,3C,32,IF,75,3A,0983 
2080 DATA 0A,75,3C,32,0A,75,2A, 1C,75,ll,50,Ci0,19.22,1C,75,'0ED7 
2085 DATA 2A,07.8D,CD,A9.8F.22,07.8D.CD,80.8D,2A,07,75,CD,159D 
209(0 DATA 26, BC. 22,07,75,06,00.3A.OA, 75,57.3E,C8,92,4F,CE, làE5 
2C)95 DATA 2Î.CB, 10,ED.43,i)F,75,C9.CD.C3,8F,C9,3A,09.75,&7,22B5 
2100 DATA Ca.CB,47.CA,B0,8E,3A,09,8D,3D,32,09,80,C3,D1 .SE,IhSE 
2105 DATA 3A,09,SD,FE,06,DA,E6,8E.3D,32,09,eD,2A,lC,75,2B,309B 
2110 DATA 22.1C.75,3A,1E.75.3D,32,lE,75.2 h, 07,75,26,22,07.3417 
2115 DATA 75,3A,09,75,3D,32,09,75,2A,07,8D,2B,2B,22,07,SD.37FE 
2120 DATA CD,80,3D.C3,35,8F,CD.C3,3F,C9.3A,09.75.CB.47,C2.40D0 
2125 DATA FC,BE.3A,09,8D,3C,32,09,8D,C3,23,eF,.3A, 1E.75.FE,476E 
21.iO DATA 50,C8,3A,09,SD,FE,2B,D2,48,8F,3C,32,09,3D,2A, 1C.4D72 
2135 DATA 75,23.22,1C.75,3A,1E,75,3C,32,!E.75,2 h,07,75,23.5154 
2140 DATA 22.07.75,3A.09.75,3C.32,09,75,2A,07,3D,23.23.22,54BC 
2145 DATA 07.8D,CD,80,8D,06,C»0,3h, 09,75,4F,CB,21,CB. 10,CB,5AC9 
2150 DATA 21.CB,10,ED,43.0D,75,C9,CD,C3,3F,C9,DD.2A.05.3D,62C1 
2155 DATA 2A.1A.75,3E,2C.47.C5,DD,E5,E5,3E.14.47, C5.E5.DD.6AB7 
2160 DATA 7E,00,E6,AA.4F,CB,2f.E6,55,Bl,5F,E5,CD.9C..3F,Ei,'4r 
2165 DATA 23,23,DD.7E,00.E6,55.4F,CB,27,E6,AA.B1,5F,CD.9C.7C3C 
2170 DATA 3F,El,!l,04,00,19,DD,23,C1.10,D2,Ei.CD,A9,eF,DD.S44i 
2175 DATA El,11,50,00,DD,19.C1,05,C2,56,3F,C9,06,04.E5,73,8&11 
2180 DATA 23,73,E1.CD,26,BC.10.F6.C9,CD,26,BC,CD,26,BC,CD,9431 
2185 DATA 26,BC,CD,26,BC.C9,CD,29.BC.CD.29,BC,CD,29,BC.CD,7D6E 
2190 DATA 29.BC,C9,3A.l£,75,FE.0A,D2,lS,90,E7.C2,E6,eF.3A,A593 
2195 DATA 09,75,C6,04.32,09,8D.2A,1A.75,22 ,ô7,8D.2h,1C.75,A9CD 
22!» data 22,05,8D,C3,CF,90,47,C5,2A.1C,75,2B,10,FD,22.':;5.AFC9 
2205 DATA 8D,3A,09,75,C6,04,32.09,3D,Cl.2A,lA,75,78.CB.27,B5B4 
2210 DATA CB,27,5F,16,00,19.3A.09.75,CB,47.CA.12.90.11.0;,BA4D 
2215 DATA », 19,22,O*?,BD,C3,CF, 90, FE, 46. DA. 9D,90,47. FE, 4F, C21D 
2220 DATA C2,53,90.2A,IC,75,I1.ED,FF.19.22,05,3D,2A.!A.75,C800 
2225 DATA 11,4E,00,19,3A,09,75,CB.47,C2,45,9C,1!,FE,FF.19,CE00 
2230 DATA 06,27,C3,47,90,06,28,22,07.SD,78.C6,û4,32,09.8D,D2B5 
2235 DATA C3,CF,90,3E,4F,90,5F,16,»,F5,2A.IC.75,19,11.ED,D930 
2240 DATA FF, 19,22,05,8D,2A, 1 A, 75,11.4C,», 19.F1, F5, CB,27,DF03 
2245 DATA CB,27.47.3sA,09,75,CB,4?,CA,7D,90,05,05,2B, 10,FD,E51F 
2250 DATA 22,07.SD,Fl,CB.27,47.3E.27,90,47.3 h.09.75.CB.47,EB05 
2255 DATA C2,94,90,05,78,C6,04,32,09,6D,C3,CF,90,2A,1C,75.F1D7 
2260 DATA 11,F7,FF,19,22,05,8D,2h,1h, 75,Û6,26,3A,09.75,CB,F713 
2265 DATA 47,C2,B6,90,05,05,78,5F, 16,», 19.22,07,BD,06,14,FB42 
2270 DATA 3A,09,75,CB,47,C2,C9,90,05,78.C6.04.32,09.8D.3A.0170 
2275 DATA iF,75,FE,l6.D2,O3,9i,B",C2,£3,9O,5E,OO,32.()h,ôD,O07l 
2280 DATA C3,7A.91,32.OA,8D,47,C5.2A,05.8D,11.BO,FF,19.10,0EB9 
2285 DATA FD,22,05,8D,C1,2A.07,8D,CD,A9,8F,10,FB,22.07.8D,15AF 
2290 DATA C3,7A,91,FE,B2,DA.5A,9I,FE,Ce,C2.30,91,3E,:B.32, 1 ED 6 
2295 DATA 0A,8D,2A,07.BD,06,2C,CD,A9,8F,10,FB,22,07,8D,2A.244D 
2300 DATA 05,aD,06,2C.ll,BO,FF,19,10,FD,:2.05,8D,C3,7A,91,2A79 
2305 DATA 47,3E,CS,90,4?.3E,2C,90,32,OA,8D,2A,07.BD.47,CD,3032 
2310 DATA A9.8F,10,FB,22,07.8D,2A,05,3D,3A,OA,8D,47.11.BO,35C0 
2315 DATA F,19,10,FD,22,05,8D,C3,7A,91,2A,05,8D,06,16.11,3650 
2320 DATA BO.FF.19,10,FD,22,05,BD,2A,07,SD,06.I6.CC,A9,8F,41SS 
2325 DATA 10,FB,22,07,8D,3E, 16,32,OA,8D,CD.4C,8F,06,»,3A,467E 
2330 DATA 09,75,4F,CB.21.CB,10,CB,21,CB,10,ED.43,OD,75,06.4C91 
2335 DATA ».3A,0A,75,57,3E.Ce,92,4F.CE,21,CB, 10,ED,43,0F,52eE 
2340 DATA 75,C9.00.00,0Û,ED.5B.ie,75,2A,03,75,06,18,C5,06,572C 
2345 DATA 5Û,E5,1A,77.23.13,10.FA,El,CD,26.BC,Cl,lû.E=,C9.5F4B 
2350 DATA ». », 00,00,00,00, », », 00, '00,00, »,», 00, », 00, 5F4B# 


72 


CPC n°36- Juillet/Août 1988 










Coktel Vision 
Educatif 


P'esSA/ 


ePUCAT/F 


LA BOSSE 
DES MATHS 


V ous parler de travail de 
cl^se en plein mois de 
juillet, cela peut paraî¬ 
tre très dur, je sais, 
mais ce logiciel est tellement peu 
■"^^barbatif qu’il vaut la peine 
d’être présenté (même en 
période de vacances...) car il a 
différentes utilisations possi¬ 
bles. Ainsi, ceux qui passent en 
4ème avec quelques difficultés 
pourront réviser presque en 
s’amusant le programme de 
maths de Sème et les autres 
pourront déjà découvrir sous un 
bon côté ce qu’ils apprendront 
l’année prochaine. Quoiqu’il en 
soit, notez bien le nom de ce 
logiciel, vous les parents d’élè¬ 
ves de Sème car vous en aurez 
peut-être besoin dès le mois 
d’octobre prochain. 

Il faut d’abord que je vous pré¬ 
sente le pauvre Jo et son his¬ 
toire ; tout allait pour le mieux 
dans le rneilleur des mondes 
jusqu’au jour où Jo perdit sa 
bosse... des maths. Les consé¬ 
quences furent tout de suite dra¬ 
matiques : tous ses amis lui 
tournèrent le dos et pis encore, 
il fut exclu du clan des “Big 
Bosses” ce qui lui enleva toute 
dignité. 

Complètement découragé et au 
bord du suicide, Jo rencontre 
alors Luther, le sage et savant 
Luther qui lui propose de lui 
servir de guide dans un périlleux 
voyage ayant pour but de recon¬ 
quérir sa bosse. Jo accepte le 
projet avec enthousiasme mais 
Luther lui précise bien que la 
traversée de l’Océan de la Géo¬ 
métrie, de la Contrée Numéri¬ 
que et de la Cité des Données ne 
va pas être des plus faciles et 
qu’il faut à tout prix qu’il bosse 
dur... 


Dans un premier temps, ils 
s’embarquent tous deux pour 
l’Océan de la Géométrie et ren¬ 
contrent tout de suite le maître 
des lieux en la personne de 
Greenpeace, baleine à bosse qui 
ne leur réserve pas un accueil 
particulièrement chaleureux. 
On dirait même qu’elle est prête 
à les croquer et ce sont les jam¬ 
bes toutes tremblantes que Jo se 
jette à l’eau pour la première 
épreuve qui concerne les figures 
planes : une émeraude qui, vue 
du dessus, représente un quadri¬ 
latère dont les diagonales se 
coupent en leur milieu et sont 
perpendiculaires, c’est un, c’est 
un... losange. Oui, gagné ! Jo 
vient de marquer ses 4 premiers 
points et il sent déjà que sa 
bosse est prête à se regonfler. 
Allez, continue moussaillon ! 
Après un problème sur la for¬ 
mation d’un parallélogramme et 
la somme des angles d’un poly¬ 
gone, Jo est confronté à des 
questions de connaissances aux¬ 
quelles il doit répondre par oui 
ou non (ex : un losange est-il un 
parallélogramme ou un carré 
est-il un trapèze isocèle ?). C’est 
seulement au bout de 6 exerci¬ 
ces complets que Jo est autorisé 
à quitter les figures planes mais 
il doit encore visiter les symé¬ 
tries et les cubes avant de pou¬ 
voir saluer poliment Greenpeace 
pour continuer son voyage. 


Brièvement, sachez que Jo doit 
à nouveau faire face à un con¬ 
trôle de connaissances par rap¬ 
port à 2 points A et B ; sachant 
que A est le symétrique de B par 
rapport à la droite d ; sans 
compter le problème du cercle 
ou de l’axe de symétrie. Jo subit 
encore 6 exercices sur les cubes 
et c’est la liberté ! Oh toute pro¬ 
visoire car le bon ami Luther le 
guide désormais vers la Contrée 
Numérique... 

Cette fois, ils sont accueillis par 
un redoutable matou-matheux 
qui porte le doux nom de Kid 
Cat ; et c’est sans aucune déli¬ 
catesse qu’il pousse le pauvre Jo 
claquant des dents vers les cal¬ 
culs décimaux. Il doit se tortu¬ 
rer les méninges pour répondre 
correctement à des questions 
d’ordre de grandeur telles que 
si X et Y sont plus petits que 1, 
en est-il de même pour X x Y ? 


Ou si A X B est plus petit que 
A, cela veut-il dire que B est 
plus petit que 1 ?... Mais ce 
n’est pas tout car il doit alors se 
munir d’un papier, d’un crayon 
et éventuellement d’une calcu¬ 
latrice pour résoudre les problè¬ 
mes suivants : retrouver le prix 
d’un article connaissant celui 
des autres articles et le total, 
trouver une distance totale entre 
plusieurs points ou trouver un 
nombre après avoir suivi une 
suite logique où sont intervenus 
des calculs... Mais tout ceci ne 
représente qu’une mise en train 
car il reste encore à considérer 
les calculs relatifs et les fractions 
avant de découvrir un Jo qui 
commence à tirer la langue 
peut-être mais qui se refait une 
santé visible du côté de la 
bosse... 














Et pourtant le circuit n’est pas 
encore terminé car il reste 
encore à explorer la Cité des 
Données où règne sans aucun 
conteste possible Sylvester Car¬ 
tonne surnommé le bosseur 
fou ! 

Au grand désespoir de Jo, 
Sylvester déclare que celui-ci 
manque sérieusement d’exercice 
et il le propulse alors sans autre 
préambule dans les problèmes 
d’aires et de volumes suivis de 
l’étude des tableaux et graphi¬ 
ques pour terminer dans une 
magnifique ligne droite avec 
l’étude de la proportionnalité. 
Enfin, fini ! 

Il faut reconnaître que le par¬ 
cours de récupération de bosse 
des maths est long et doulou¬ 
reux d’autant plus qu’en cas de 
mauvaise réponse, la solution 
n’est pas donnée, donc l’élève 
utilisant ce logiciel ne rendra Jo 
complètement heureux que s’il 
arrive à progresser à moins qu’il 
ne se fasse aider par un plus 
grand ! A chaque instant, il est 
possible de quitter un exercice 
ou même un thème mais ce n’est 
pas une solution. Les exercices 
proposés sont clairs, pas forcé¬ 
ment faciles et couvrent bien le 
programme de maths. Vous 
avez sans doute compris que j’ai 
été séduite aussi bien par la pré¬ 
sentation du logiciel que par les 
notions abordées et la 
les traiter. A 




















BA/^C PBSSA/ 



W({/C/£L8 


Blood 

BROTHERS 


pierres précieuses ; bien 
entendu, il y a eu mort d’hom¬ 
mes et notamment les parents 
de Hark et Kren, jeunes étu¬ 
diants brillants. 

Après avoir fait le pacte du sang 
que pratiquaient autre fois les 
Indiens, Hark et Kren sont unis 
à Jamais pour venger leurs pa¬ 
rents et récupérer les pierres pré¬ 
cieuses dans la ville souterraine 
de Scorpia, constituée de mines 
et de tunnels. Disposant d’ar¬ 
mes sophistiquées, les deux frè¬ 
res peuvent visiter une mine où 
rôdent de nombreux robots 
dangereux tout en sachant qu’ils 
pourront y récupérer, en plus 
des pierres précieuses, des réser¬ 
ves d’armes, d’énergie ou de 
carburant pour leur Jet Bike qui 
leur permet de passer à une 
autre mine. Ils découvrent aussi 
qu’ils peuvent ouvrir des passa¬ 
ges dans une mine en détruisant 
des objets qui ressemblent à des 
sapins miniatures. 

Lorsqu’une mine a été complè¬ 
tement mise à nu, il leur faut 


Gremlin Graphics 
Arcade/Aventure 


ur la belle et paisible 
Sylvonia, la bande des 
Scorpions a encore 
joué de son dard mor¬ 
tel en pillant tous les coins de la 
planète pour trouver sa richesse 
matérialisée sous la forme de 


passer à la suivante en zigza¬ 
guant habilement entre une série 
de blocs (dont certains sont des¬ 
tructibles) jusqu’au moment où 
ils atteignent une grille qui cons¬ 
titue l’entrée de la nouvelle 
mine. Il ne leur reste plus à cet 
instant qu’à recommencer leurs 
investigations... 

Il y a deux possibilités de jeu : 
ou vous jouez à deux et descen¬ 


dez dans la même mine mais il 
faudra toujours être ensemble 
d’un écran à l’autre ou chacun 
va dans sa mine... Blood Bro¬ 
thers n’est pas un super futur hit 
mais c’est un bon logiciel avec 
des graphismes bien travaillés et 
colorés (à part les phrases d’ac¬ 
cès à une autre mine...) et une 
animation plus que correcte. A 
voir. 


Starring 

CHARLIE CHAPLIN 

US Gold 
Simulation 


ser dans telle ou telle catégorie ; 
c’est le cas de Starring Charlie 
Chaplin dont le sujet est très 
original ! 

En effet, vous êtes invité à deve¬ 
nir producteur et metteur en 
scène avec pour vedette princi¬ 
pale, Chariot (il faut ce qu’il 
faut...). Ainsi, vous disposez de 
9 scenarii avec pour chacun 
d’eux l’indication du coût du 
tournage, du synopsis et du 
nombre de scènes. Votre choix 
étant fait, il ne vous reste plus 
qu’à tourner chaque scène. 


D ans toute la produc¬ 
tion de logiciels qui est 
très importante sur 
une année, il y en a 
certains qui sortent de l’ordi¬ 
naire et qui sont difficiles à clas¬ 




■ 


1 

1 

102 

1 

ILJ 





» I « « r 

* « « < t 1 t 









































Conspiration 

Ubi Soft 
Aventure 

V oulez-vous connaître 
l’art et la manière de 
vivre une bonne aven¬ 
ture en passant de 1988 
à Messidor an 111 ? Pour cela, 
il vous suffit de charger Cons¬ 
piration qui va vous saisir alors 
que vous êtes tranquillement 
installé dans une chambre d’hô¬ 
tel à Orléans. Ayant emporté 
votre téléphone dans la salle de 
bains, vous vous apprêtez à 
prendre une bonne douche lors¬ 
que soudain, la sonnerie du télé¬ 
phone se fait entendre. Vous 
répondez sans savoir ce que va 
entraîner ce geste !... 


Tout d’abord, vous serez con¬ 
vié à vous rendre dans une église 
où un missel oublié intention¬ 
nellement vous donnera un 
autre rendez-vous : il s’agit de 
la demeure du futur Louis XIX 
qui se trouve à St Florent-le- 
Vieil. Là, poussé par votre 
grande curiosité, vous pénétrez 
dans cette demeure par effrac¬ 
tion et commencez à fouiller ; 
votre seule “trouvaille” est de 
recevoir un grand coup derrière 
les oreilles et vous vous réveil¬ 
lez près d’un tombeau... Vous 


ne tardez pas à savoir que, par 
ailleurs, vous avez changé 
d’époque et cela va vous servir 
pour essayer de savoir ce qu’est 
devenu le diptyque des Déclara¬ 
tions des droits de l’homme, 
mystérieusement dérobé en jan¬ 
vier 1988. Etrange procédure, 
non ? Toujours est-il que vous 
allez pénétrer le noyau des 
Conspirateurs (pour garder la 
tête sur les épaules, tâchez de 
crier “Vive la Révolution” ou 
“Vive le Roi” à bon escient !) 
et remplir ainsi votre mission 


qui consiste à faire un échange 
entre un livre anodin et un dos¬ 
sier ultra-confidentiel qüe vous 
devrez rappforter à St Florent-le- 
Vieil. Mais je vous préviens la 
chute sera terrible et le retour à 
notre époque se fera par un 
réveil très douloureux !... 
Conspiration fait partie des 
bons logiciels d’aventure du 
côté des graphismes qui sont 
superbes ; pour ce qui est du 
scénario, il n’est pas spéciale¬ 
ment original mais il “tient la 
route” et n’est pas trop difficile. 
Par contre, le côté analyseur 
syntaxique laisse à désirer par sa 
trop grande rigidité (emploi 
obligatoire de l’impératiO d’une 
part, quand il n’y a pas des fau¬ 
tes d’orthographe d’autre part 
(SORT au lieu de SORS) ! Ceci 
étant dit, ce logiciel mérite d’ap¬ 
paraître en bonne place dans 
votre logithèque. 



sachant qu’elle dure 1 minute. 
Bien entendu, vous pouvez 
visionner ou même retourner 
une scène si elle ne vous satis¬ 
fait pas, mais attention, ce n’est 
pas gratuit ! Et ensuite, il fau¬ 
dra se soumettre au verdict du 
public en projetant votre film 
sur grand écran. Plaira ? Plaira 
pas ? Vous le saurez le lende¬ 
main en lisant les journaux et si 
cela n’a pas été bon, il vous fau¬ 
dra songer à renflouer les cais¬ 
ses... ou à changer de métier ! 


A priori, les possibilités que 
laisse entrevoir ce logiciel sont 
très alléchantes ; malheureuse¬ 
ment en l’utilisant, vous vous 
sentez brimé par la liberté d’ac¬ 
tion toute relative qui vous a été 
octroyée et c’est très dur pour 
un créateur ! Par ailleurs, ani¬ 
mation et graphismes sont 
acceptables mais il faut noter 
que pour Starring Charlie Cha¬ 
plin le résultat est meilleur sur 
PC que sur CPC. 













Creamina afin de vivre de lon¬ 
gues heures paisibles. Malheu¬ 
reusement pour lui, ce ne sont 
que de douces illusions car 
Creamina vient d’être frappée 
par un grand malheur ! Ryu, 
sorcier terrifiant et malveillant 
a découvert que le trésor de 
Babylone se cachait dans cette 
cité et en échange du trésor il y 
a laissé une multitude de 
monstres ! 

A charge donc pour Karnov 
d’affronter tous ces monstres et 


Karnov 


Electric Dreams 
Arcade 


K arnov est une véritable 
force de la nature qui 
a passé sa vie à sillon¬ 
ner tout le pays com¬ 
me “homme fort” d’un cirque ; 
maintenant que l’heure de la 
retraite a sonné, Karnov décide 
de rentrer dans sa ville natale : 


pecieur c.iouseau est sur mes 
traces. Il va donc falloir jouer 
finaud pour ne pas réveiller le 
maître des lieux et ne pas se 
faire repérer par ce cher Clou- 
seau. Alors, j’use d’artifices 
pour que mon patron se rendre 
dans les pièces où je désire 
aller : un réveil, une cloche, un 
trampoline... et une panthère 
rose gonflable ! Avec tout cet 
armement, je dois être capable 
de remplir d’or mon petit sac et 
de passer au suivant de ces mes¬ 
sieurs (4 fois en tout...). 

Ça, c’est la théorie car la Pan¬ 
thère Rose, ah oui, c’est joli, 
très joli même pour ce qui est du 
graphisme mais pour y jouer, 
alors là c’est tout autre chose ! 
Alors, si vous êtes persévérant 
dans l’âme, allez-y ; sinon 
abstenez-vous car vous ne 
dépasserez sans doute pas les 3 
premiers écrans, ce qui est 
navrant ! 


PANTHERE 


Infogrames 

Arcade 


Pacifique seulement voilà, toute 
panthère rose que je suis, je n’ai 
pas un sou en poche. Il ne me 
reste donc qu’une seule solu¬ 
tion : me faire embaucher en 
tant que maître d’hôtel dans une 
de ces belles maisons de haut 
standing et profiter du sommeil 
du juste du propriétaire pour 
l’alléger de tout or, bijoux ou 
autres qui ne lui servent à rien ! 
Seulement, j’étais loin d’imagi¬ 
ner que j’allais rencontrer deux 
problèmes de taille : d’une part. 


BA/VCP£S8A/ 




























BA/VC D E88A/ 




Gothik 

Firebird 

Arcade IAventure 


Pour Olga, l’heure est grave ; 
elle doit se rendre dans le 
royaume de Belorn pour venir 
au secours du plus célèbre 
druide du pays, j’ai nommé 
Hasrinaxx (les fanatiques de 
jeux auront déjà reconnu le 
héros de Druid et d’Enlighten- 
ment Druid II). Celui-ci est 
complètement impuissant 
depuis qu’un “méchant” sei¬ 
gneur fait régner sa loi sur le 
royaume de Belorn et qu’il a 
découpé notre pauvre druide en 
6 parties disséminées dans un 
immense château qu’il a fait 
construire. La mission d’Olga 
est donc simple en soi : pénétrer 
dans le château, visiter toutes les 
tours et récupérer les différents 



llô Olga ? Ma p’tite 
.bonne femme du rada- 
da, mais t’es revenue 
1 du Nebraska, you- 
Heu, j’ai l’impression 
qu’il y a une petite erreur sur la 
personne ; il s’agit bien d’Olga 
mais c’est un super guerrier pos¬ 
sédant des pouvoirs magiques, 
en particulier ceux des éclairs et 
des boules de feu. 



morceaux du pauvre homme. 
Mais attention, Olga n’est pas 
seule dans ces tours : des mons¬ 
tres en tout genre rôdent et il s’y 
trouve différentes potions qui 
peuvent être aussi bien bénéfi¬ 
ques que maléfiques. 

De type Gauntlet, ce logiciel va 
séduire les adeptes du genre 
grâce à un graphisme et à une 
animation corrects ; de plus, les 
différentes potions accessibles 


sont très nombreuses et lorsque 
vous terminez une partie, un 
“ordre de druide” vous est 
attribué selon votre habileté, 
votre durée de vie et votre taux 
de réussite. Etant donné qu’il y 
a 64 distinctions possibles, vous 
avez le temps de vous surpas¬ 
ser : de plus, si Olga ne vous 
inspire pas, alors choisissez Olaf 
qui lui est le plus rapide lanceur 
de flèches du royaume... 


S PAGE RAGER 

Loriciels 

Simulation 


N ous sommes au XXII' 
siècle, très exactement 
en l’an 2132 ; nous 
vivons dans un monde 
dont nos ancêtres du XX' siè¬ 
cle ont rêvé toute leur vie : 
moins de travail, plus de loi¬ 
sirs ; en somme une meilleure 




qualité de vie ! Le pied quoi ! 
Eh bien non, c’est la catastro¬ 
phe la plus complète, la parfaite 
décadence et l’ennui le plus 
total... 

La vie étant un éternel recom¬ 
mencement, nous évoluons 
maintenant dans un remake de 
Rome antique avec la recherche 
continuelle de nouvelles sensa¬ 
tions fortes, pures et dures... 
Vous n’échappez pas à cette 
envie et décidez de participer à 
cette course infernale, sans 
autre règle que celle d’essayer de 
franchir la ligne d’arrivée. Ce 
but est loin d’être facile à attein¬ 
dre car les autres concurrents 
sont nombreux (vous pouvez 
d’ailleurs les anéantir, les pous¬ 
ser, les envoyer faire d’acroba¬ 
tiques sauts périlleux avec leur 
machine) et des bombes sont 
présentes sur le parcours. Enfin, 
il y a un dernier petit problème ; 
vous ne devez pas batifoler hors 
de la ligne tracée pour la course 


car si vous êtes trop haut, trop 
bas, trop à droite ou trop à gau¬ 
che, vous allez perdre de l’éner¬ 
gie et nous avons beau être en 
2132, elle est toujours rare et 
précieuse, alors prudence ! 
Space Racer est une adaptation 
du logiciel qui était sorti sur 
Atari et malheureusement, elle 
est un peu décevante tant au 
niveau des couleurs que des gra¬ 
phismes. L’animation, quant à 


elle, est correcte et l’accéléra¬ 
tion, sans être fulgurante est 
suffisamment rapide pour vous 
donner quelques émotions... 

A noter la touche CTRL qui 
inverse les commandes, ce qui 
satisfera tous ceux qui veulent 
monter en poussant le joystick 
vers le haut et la touche N qui 
vous permet de connaître en 
pourcentage la distance restant 
encore à parcourir. 


























BAA/C PeSSAf 




Wô/c/ecs 


Gunsmoke 

Go / • Arcade 

E t un petit tour dans le 
Far West et sa dure loi, 
un ! De plus, vous êtes 
du côté de la barrière 
où vous allez forcément vous 
faire remarquer avec cette étoile 
que vous portez sur le cœur... 
Ainsi en qualité de sheriff, vous 
êtes chargé de suivre à la trace, 
de retrouver et d’éliminer cinq 
hors-la-loi coriaces qui, ne vous 
y trompez pas, n’ont pas tous 


l’apparence d’horribles brutes 
mal rasées et complètement aso¬ 
ciales ! Vous remarquerez que 
le scénario est toujours le 
même : le hors-la-loi, se sentant 
traqué, cherche refuge dans une 
ville où tous les ranchs du coin 
sont à ses bottes (il y en a tou¬ 
jours une !) ; ce qui fait que, 
lorsque vous vous pointez à 
ladite ville, tout le monde se 
précipite sur vous, bien décidé 
à vous écraser sans aucune ver¬ 
gogne... Heureusement que 
vous avez la gâchette facile et 
plus d’une ruse dans votre sac ! 
Cette adaptation de jeu d’ar¬ 


cade Capcom bien qu’elle soit 
de bonne qualité risque de ne 
pas vous monopoliser pendant 
des nuits entières ; en effet, les 
graphismes ne sont pas des plus 
finis mais il faut noter que sur 
CPC, l’animation est suffisam¬ 
ment rapide pour donner un in¬ 


térêt au jeu (ce qui n’est pas le 
cas sur d’autres machines...). 
Enfin, soulignons une superbe 
musique de présentation qui est 
peut-être éphémère par rapport 
à la durée du jeu mais il ne faut 
pas laisser les musiciens dans 
l’ombre... 



Garfield 


The Edge 
Arcad^Aventure 


J e cherche après 
Arlène, Arlène, oh 
mon Arlène, je cher¬ 
che après Arlène mais 
ne la trouve pas !... J’ai déjà 
fouillé toute la maison 
lorsqu’on m’apprend que ma 
pauvre Arlène s’est fait ramas¬ 
ser et qu’elle se trouve à la Four¬ 


rière Municipale. Mais ce n’est 
pas vrai ! Moi qui avait décidé 
de ne pas quitter la maison 
aujourd’hui, je vais être obligé 
de me hasarder dans les rues de 
cette ville inhospitalière afin de 
trouver la Fourrière. 

Vous reconnaîtrez que la condi¬ 


tion de chat est bien difficile ; 
je dois côtoyer à chaque instant 
le chien le plus bête du monde 
Odie, et en plus de cela, quand 
je n’ai pas faim, j’ai envie de 
dormir !... Heureusement que 
mon maître est là avec sa tasse 
de café pour me permettre de 
refaire surface ! En tout cas, 
une chose est sûre, je dois 
retrouver Arlène avant la fin du 
jour et cela ne va pas être du 
gâteau ! Tiens, à propos de 
gâteau... 

Garfield est adapté à partir 
d’une B.D. qui, malheureuse¬ 
ment, n’est pas très connue en 
France. 



Les graphismes sont mignons 
mais l’animation est un peu 
molle et vous devrez être persé¬ 
vérant pour ne pas “mourir” 
pour cause de grande fatigue 
dès les 30 premières secondes... 



ooax 





















BA/Ve P BS8A/ 


LOq/C/ELS 



B ienvenue à bord de 
votre CPC ; vous êtes 
chaleureusemnet invité 
à vivre l’histoire du 
Livre de la Jungle quelque peu 
revue et corrigée... En effet, 
imaginez une superbe héroïne 
blonde, musclée et armée d’un 
fouet impressionnant. Enfant 
abandonnée, elle a été recueil¬ 


lie par la bande de Renards qui 
vit à Granath, monde apparte¬ 
nant à un univers parallèle au 
nôtre et situé à des centaines 
d’années lumière. Les sages de 
cette tribu ont décidé de donner 
des pouvoirs magiques à leur 
protégée et elle peut, entre 
autres, se transformer en 
renard. 

Vixen (c’est le nom de cette 
“déesse”) est le seul être 
humain ayant pu échapper à 
l’assaut des dinosaures qui ont 
tout détruit. 11 ne lui reste donc 
plus qu’une seule chose à faire ; 
arpenter la surface de la planète 
avec son fouet magique pour 
décapiter les ennemis et dévoi¬ 
ler les endroits où se trouvent 
des têtes de renard qui lui per¬ 
mettront de se transformer. A 
partir de là, elle peut se prome¬ 
ner dans les grottes et sous-sols 
de Granath où elle obtiendra, 
avec un peu de dextérité, le 
Mega Fouet tuant tout sur son 


passage d’un seul coup, d’un 
seul ! ou les Mega Gems qui 
augmentent le potentiel de 
Vixen, une fois qu’elle se 
retrouve en surface. Autant dire 
qu’elle doit utiliser toutes les 
qualités d’un renard : ruse et 
intelligence... 

A notre avis, Vixen va plaire 
aussi bien aux grands qu’aux 
petits ; l’ensemble des qualités 


nécessaires à un bon jeu d’ar¬ 
cade sont présentes : bon choix 
des couleurs, graphisme correct 
et animation “tenant la route” 
avec quand même une petite 
restriction au niveau du scrol- 
ling horizontal qui apparaît 
quelque peu haché mais le résul¬ 
tat final mérite quand même 
d’envahir vos écrans. 




Desolator 

us Gold 

Arcade 

U ne fois de plus, Kairos, 
le Grand Satan a 
frappé en enfermant 
dans son château de 
pauvres petits Peters sans 
défense ; heureusement que le 
grand Mac est là pour voler à 
leur secours ! 

Vous pénétrez donc dans le pre¬ 
mier niveau du château avec 
pour seules armes, votre coup 
de poing redoutable et la possi¬ 
bilité de faire des sauts périlleux 
pour passer au-dessus de cer¬ 
tains obstacles telles des bombes 
par exemple. Chaque salle est 
bondée : si ce ne sont pas des 
petits bonshommes bleus cap¬ 
teurs d’énergie, c’est la fille de 
Kairos qui tente de vous ralen¬ 



tir, heureusement il y a certains 
éléments positifs qui vont vous 
revigorer comme une capsule 
d’énergie, un boomerang ou 
une horloge qui va stopper 
momentanément les ennemis 
sans oublier les carrés stratégi¬ 
ques qui vous transportent ins¬ 
tantanément dans une autre 
pièce ! Sachant tout cela, il ne 
vous reste plus qu’à repérer les 
miroirs sur les murs pour aller 
les briser et délivrer ainsi les 


Peters. De plus, lorsque vous 
atteignez la dernière pièce d’un 
niveau, il vous faut affronter 
Kairos en personne (enfin si l’on 
peut dire car il a le pouvoir de 
se multiplier...) avant de pou¬ 
voir continuer votre progression 
et votre mission de sauvetage. 
Ce jeu de type Gauntlet est 
satisfaisant tant au niveau du 
graphisme que de l’animation ; 
de plus, le nombre d’actions 
possibles est suffisamment 


grand pour éviter une trop 
grande monotonie. Par contre, 
il y a un phénomène que vous 
n’apprécierez sans doute pas 
plus que moi ; lorsque vous êtes 
par exemple au niveau 5 avec un 
bon score et que l’écran suivant 
vous bloque soudainement dans 
une situation sans issue, c’est 
vraiment très désagréable. J’es¬ 
père seulement qu’il n’y a pas 
trop de situations du même 
type, ce serait désolant ! 















L 


R 


RENUMEROTATION 

DES 

PROGRAMMES BINAIRES 


Régulièrement des petits programmes binaires 
paraissent dans les revues informatiques. Ils 
vous permettent d'améliorer vos propres 
programmes en leur ajoutant des fonctions 
difficiles, voire impossibles à obtenir en 
BASIC. L’habitude des concepteurs aidant, 
ils occupent le plus souvent la zone mémoire 
comprise entre &A000 et HIMEM. Ceci 
interdit la présence simultanée de plusieurs 
d’entre eux en mémoire, car le dernier entré 
écraserait, ou tout au moins chevaucherait, 
ceux qui y sont déjà logés, empêchant leur 
fonctionnement correct. 

Le présent programme va rendre possible la 
cohabitation de plusieurs programmes 
binaires conçus initialement pour une même 
zone mémoire. 

FONCTIONNEMENT DU 
PROGRAMME - 

f l est impossible de faire fonctionner un programme 
à une adresse différente de celle d'origine forsqu'il 
tait appel a des routines ou des données situées dans la môme 
zone. En cas de déplacement, il ne trouvera plus à ces adres¬ 
ses ce qu'i était censé y trouver ; d'où un disfonctionnement 
couvant aller jusqu'au plantage irrémédiable. 

Nous allons étudier le fichier binaire, instruction par instruc¬ 
tion, pour repérer les adresses et les données codées sur 16 
bits. Si elles appartiennent à Iq zone occupée par le pro¬ 
gramme, elles seront modifiées en tenant compte de la nou¬ 
velle zone souhaitée. Le rôle des DATA est de remplir un 
tableau de 256 variables V () contenant le nombre d'octets 
nécessaires à I instruction considérée (de même rang). 
Exemple : V(0) = 1 puisq^ue l'instruction codée 0 (NOP) occupe 
v{ 17) = 3 puisque l'instruction codée 
1/ ILD DE, DATA 16) occupe 3 octets. 

Seules les opérations utilisant 3 octets permettant de définir 
une adresse sont retenues, les autres seront ignorées. 

I existe quelques cas particuliers constitués par des groupes 
de plus de 3 octets (LD RP, (ADRESSE), LD (ADRESSE), RP 
registres d index, etc.). Dans ce cas, c'est l'octet suivant qui 
va nous renseigner sur la nature de l'instruction. Lorsque le 
code ne correspond pas à une de ces exceptions, c'est la 
valeur de la variable V qui est prise en compte et on passe 
à I instruction suivante. 

Les instructions RSX (celles dont le' nom est précédé du 
signe ) vont bénéficier d'un traitement de faveur. Le pro¬ 
gramme binaire permettant d'intégrer ces instructions au 

82 


, mme, 
charge- 


Jean-Michel SOHIERê^ 

BASIC, contient le nom de celles-ci sous forme de DATA. Il 
n est pas question, pour nous, de modifier ces données. Dans 
un premier temps, nous chercherons les adresses de début et 
de fin de ces noms. Ensuite la renumérotation se fera norma¬ 
lement pour tout ce qui se situe avant et après. 

UTILISATION DU PROGRAMME^HB 

• Commencez par un Reset : CONTROL-(-SHIFT+ESC 

• Protégez la zone mémoire où sera chargé le fichier à modi¬ 
fier. Exemple : MEMORY &8FFF 

[oÂrNÔS'ïlfi-'iW™"'"'' '' ^ 

• Si vous ne connaissez pas la longueur du progra 
essayez de la trouver en faisant (dans le cas d'un chi 
ment en &9000) ; 

FOR X = &9000 TO &A700 : PRINT "&"'HEXS/X 41 
PEEK(X):NEXT ,ncAÿiA,4), 

Lorsqu'une longue suite de zéros apparaît dans la colonne 
de droite, appuyez 2 fois sur ESC, puis notez la valeur hexa¬ 
décimale affichée en face du premier zéro. Cette valeur sera 
pour vous I adresse de fin du programme. 

• Lancez le programme BASIC RENUM 

• Répondez aux questions concernant les adresses 

• Sauvegardez éventuellement le nouveau fichier binaire. 

REMARQUE I 

La renumérotation ne doit concerner que le programme et lais¬ 
ser intacts les textes ou les données qui lui sont associés. Au 
cas ou vous feriez le traitement de telles zones, il pourrait 
s ensuivre quelques modifications dues au fait que notre pro- 
gramme n a pas fait la distinction entre instructions et don- 
nées. Si tel était le cas, aidez-vous d'un logiciel assembleur- 
désassembleur pour effectuer les corrections. 




20 ' 

fh» 

RENUMEROTATION 

m 

30 ' 

Ht 

DES PR06RAMCS 

««f 

40 'i 


BINAIRES 

jljlJl 


50 

60 CLStDIM V(255),ED(8) 

70 ' ♦♦♦«■»»******##****«***#*«**»***4-» 

80 nombre d'octets pour chaque instruction 

90 ' *»««««««««««««««««*«««««««*««««««« 

100 FOR x=0 TO 255;READ v(x):t€XT 

110 FOR X=1 TO 8:READ A$;ED(X)=VAL("J(’'+A$) 

120 NEXT 


>LA 

>LB 

>LC 

>LD 

>LE 

>RH 

>LG 

>LH 

>LJ 

>AV 

>HT 

>DJ 


CPC n° 36- Juillet/Août 1988 







13'-' Jh^h i.x. i.i.*. i.i« î* - . l.l.it-ti 

' 1 

710 t*«.*****t'«.«.***.***«.***************.> 


PJ 

■ 40 Di-Tm *. 71 i. 1.1.1. ^i • i • i ■ * • ; • i i 

^ 1 - 1 

uls 1 

”27' ♦•*♦*♦ sauveqarde *♦♦♦♦ 


. P ■ 

150 DATA 2.3.7.1.1.1.3.1.1.1.1.1 

Dh 



T T 

{ 

iL hTh '.v.à.*-»**!•-•* 

■ DF 

740 PF.IN':PRINT"V0ULE2 VOUS 5AUVEGARDEF i.O./N) 


ï I 

l'.j DhTA 1. l. 1.1.1. i. i. i. 1. i. 1. ;. i. 1. i. 1 

'* ' ! 

750 GOSUB 930 


'JD 

ISO: DATA l.l.l.l.l.i.l.l.l.l.i.i.l.l.l.l 

: Du 

760 ;f xi='N" THEN END 


■FN 

140 DATA l.l.1.1.1.1.1,1,1.1.1.1.1.1.1.1 

n,. 

U •> 

''''il ÎNPUT 'NOM DE SAUVEGARDE "i’iî 



I.jO- DATA 1. 1 .1. 1 . i. 1.1. i. 1. i. 1.1.1. i. 1.1 

l'L 

■80 A=INS'F Nî."." A=0 THEN T$ = "Eîîi":DCT; 

£ 2 . 

RA 


^Dh 

'90 


m: 

21'0 DAT A 1,1.1.1.1. 1 .1. 1 . 1 .1.1,1.1.1... i 

EN 

soi' I' -EN ~î Z THEN 54'l E^SE F Tï=" ^ 'HE'-.' 


^ T 

i-'U u‘AiH 

/DF 

91.:. N$=i.EF’$iNî.A-l' 



I4'j DATA 

DO 

.:2'.. ïF ..EN'Ni. F ’HEN E^' 


■Ri 

250 DATA 1 . 1 . 3 . 3 ,3.1.2.1.1.1,3.2.3.3.2.1 

DH 

3 '. 6 hVE liî-'."-Tt,B. u. t.ND 


wA 

Zcî'j' Dk t H 1 . 1 . W . ^ V-' » 1 * » 1 • 1 « i 1 - ■ - * • i ' - ■ - 

DH 

B40 PF.INT CHF.$(7j;GGT0 HZ 


Ü*! 

2'0 DATA 1 . 1 .3.1.3. 1 . 2 . 1 . 1 .1.3.1.3,2.2.1 

DF 

550 +♦♦♦*♦********♦♦♦*►♦♦♦♦♦♦*♦♦♦«■.»♦♦♦♦ 


TD 

2 ’ 8 u jrtTA 1 . 1 .3, 1 . 1 . 1 ... 1 . i. i 

UF 

360 ♦♦ conversion en nomore positi* *♦ 


■ TE 

3-0 DATA 43.53.s3,"3.4P.5B.o&.l^B 

ti. 

970 **+4+***+*#*4(#4t*»4»**«**+»**»*+»»* 


• 

3iX' liüDE 2:CLS 

üG 

eeO IF A'IO THEN A=65536*A 


FW 

310' A$-''ADFc33E ':P$=" DD ^^’OcRhI’I^IE " 

-rr 

890 RET'JRN 


Æ 

rhlNi hî; ' As.Tüti-LE DE DEBüi ï-i: 

tF 

9'00 ♦♦*♦♦***■*♦*♦*♦♦♦♦*♦**♦***♦•*♦**♦♦♦♦ 


RK 

33ij INF'UT AîSOSUE S 8 i.';D=A 

ü 

910 ****** réponse Oui ou Non ♦*♦»♦♦ 


H fi 

340 PRltlT Aî; ACTUELLE DE P IL F'$: 


920 ♦**♦*♦*♦♦**♦♦♦♦*♦♦♦♦*♦♦♦*♦♦♦♦**♦♦* 


.'TB 

350 ÎNFLT A;5ü5üE 330 :F=h 

ÜX 

930 Xf=UFPEF:îaNf'.EY$) 


RB 

36v feint 

"F 

940 IF X$("N" OR V$/"G'‘ THEN 930 


;-'XT 

3^' PRINT Aî: 'NORHAlE DE DEBU'OF*; 

F 

950 FETURN 


,. ZK 

380 INFUT A:G03UB B3'.':N=A 

■Ü3 

960 '*♦♦♦♦♦♦♦•*♦♦♦♦*♦♦♦♦*♦*♦*♦♦*♦♦*♦*♦♦♦ 


TF 

T’C F'FINT 

■FE 

970 ****** renumerotation ****** 


.■^G 

40)0 PRINT "FUTURE '':A$:"DE DEBUT":P$: 

■ rZ 

960 ♦♦♦**♦♦♦♦****♦♦**♦♦♦*♦♦♦**♦**+♦♦** 


Th 

41'; IMPU''’ A:b05ü& 8 Bv:F=A 

:üe 

990 LOCATE 35.15:FPINT t:HF$(24);"ATTEMDE2 

;CHFî(24 

/ rR 

420 FPIN'f"3'hBIT-IL D UNE EXTENSION RSc lO'N) ■" 

VF 

l'O'OO FOR A=DO TO FO 


'■LA 

430' L=F-D:fi05U& 930 

NT 

1010 X=PEEK(A):IF X DO THEN 1060 


■ AV 

440 IF !'Î="N" THEN DO=D:F(i=F:GDTO 700' 

/DF 

1020 ■ ♦♦*♦**♦♦♦ code ■Î’(ED ♦♦*♦♦*♦♦♦ 


/XF 

450' ♦♦♦♦♦♦♦♦♦♦♦iHi+**ii'*ii'******+**4***** 

>RK 

1030 FOR 1=1 TC 3 


;BK 

4o0 ♦♦♦♦♦*♦ extensions RS)( ♦♦♦*♦♦♦ 

'TA 

1040 IF PEEK(A+i)=ED(r) THEN A=Atl:V(X;=3:G0T0 1160 

:>uy 

470 ■ 

, TB 

1050 NEXT:V(X)=2:G0T0 1260 


:x'o 

480 PAINT A$: "NORMALE D'INITIALI5ATI0N'';FÎ: 

./FA 

1060 IF X':/?<DD ANC X-OS^.FD THEN 1140 


lÆ 

490 INPüT A:505UB 380;IN1T=(N-A)+D 

>CC 

1070 ■ **♦♦♦ registres d'index ***** 


.TVA 

500 calcul début des noms ♦*♦♦♦ 

;RF 

1080 A=A+1:X=PEEK1A):ÎF X'.5<34 THEN 1010 


/FD 

510 FQF. y=INIT TO F 

.NU 

1090 IF X=&34 OR X-3.35 THEN A=A+2:G0T0 lOlû 


HF 

520 IF PEEKiïlX'l THEN 600 

■TM 

1100 IF X=S.36 THEN A=AF.:50T0 1010 


■AB 

530 DT16=PEEK'V+D + 'PEEf 

:'BB 

1110 IF X=?(lB THEN A=A*3:G0T0 1010 


/AH 

540 DTit.=Dt(DTl 6 -N) 

.-NC 

1120 IF X:;'?£0 THEN A=A-fl:B0T0 1010 


:.'AQ 

550 A=PEEK (DT16) + (FEEK 'IDTlo+i ) *256) 

..'CL 

1130 IF X;'-î,45 THEN A=A+2:G0T0 1010 


/AE 

560 GOSUB 880:ADD=A 

>NQ 

1140 IF V(X) ';>3 THEN 1260 


■>RC 

570 IF ADD<N OR ADD)N+L THEN 600 

'TB 

1150 **♦♦*♦ cas normaux ****** 


.>XK 

580 2=ADD-N:B=P+2:I0=ÎNTlB/256):J0=B-!I0*256) 

.>PU 

1160 C=PEEf'.(A+1 ) + (PEEK(A+2) *256) 


>20 

590 POLE DT16+1.0:PQKE DT16,0:GQT0 üCO 

...-FC 

1170 IF C:N or C.>N+L THEN 1260 


;WV 

600 NEXT 

"EB 

i 160 Z=C-N: B=P+Z: I=INT (B,/256) : J=B- (1*256) 


>KK 

ûlO PRINT CHF:$(7): "VECTEURS RSX INTROUVABLES ":END 

13C 

1190 POKE A+2,I:POKE A+1.J 


/UK 

620 *♦ f-enumerotation jusqu au 1 er nom ♦» 

RJ 

1200 IF XOMF THEN 1260 


>011 

630 D0=D:F0=D+2-l:GOSUB m 

;.>VR 

1210 ' *♦♦♦***♦♦ code SiDF «**♦*»*♦♦ 


>X 6 

640 POKE DTl6tl.I0:PQKE DTlô.JO 

2L 

1220 E=D+2:C=FEEK(E)+(PEEK(E+1)*256) 


'•DH 

650 ' ♦♦**** calcul tin des noms ****** 

.>TB 

1230 IF C<N OF: C/N+L THEN 1260 


>WR 

660 FOR A=D+2 TO F:IF PEEK(A)=0 THEN 690 

/FV 

1240 Z=C-N:B=P+Z;I=INT(B/256):J=B-(I*256) 


/KG 

670 NEXT 

,EJ 

1250 POKE E+1.1:POKE E.J 


/RB 

680 ♦♦*♦ renumerotation de la tin ♦** 

.'TE 

1260 A=A+V(X)-1 


>XK 

690 DO=A+l:FO=F 

>2G 

1270 NEXT 


>LB 

700 GOSUB 990 

/JE 

1 1280 RETURN 


>FE» 


CPC n°36- Juillet/Août 1988 


83 










T A 


E 



L 


R 


COMPILATION 


f l y a longtemps, c’était 
au temps de la 
préhistoire, le gibier et 
les disquettes 3 pouces étaient 
très rares. Les précieuses 
petites plaquettes noires 
s’échangeaient alors contre 70 
parfois 80 silex ; le prix d’un 
kilo de mammouth 1er choix. 
Il est bien évident qu ’à ce 
taux, chaque programme 
sauvegardé devait en valoir la 
peine. C’est sûrement à cette 
époque qu’est née l’idée de la 
compilation. 

La compilation est un système qui permet 
de réduire très sensiblement la taille d'un 
fichier binaire. Il est surtout bien adapté 
aux pages écran qui, sur une disquette, 
prennent 17 K. Une fois compilée, la 
taille de la même page écran ne fera que 
5 ou 6 K. 

Les programmes que je vous propose 
permettent également la compilation de 
fenêtres. Ceux d'entre vous qui écrivent 
des jeux d'aventure multicadres sauront 
en tirer le meilleur parti. 



Comment compile-t-on un programme ? 
Nous savons qu'une page écran occupe 
&4000 octets de l'adresse &C000 à 
l'adresse &FFFF. Sur ces &4000 octets 
beaucoup ont la même valeur. Tous les 
octets représentant le fond du décor ont 
la valeur "0". 

Le principe de la compilation consiste à 
compter le nombre d'octe/s qui se suivent 
et dont la valeur est identique. 

Premier cas. L'octetn° 1 est différent de 
l'octet n° 2. Il va être recopié tel quel 
dans le fichier compilé et nous allons com¬ 
parer /e n® 2 avec les suivants. 
Deuxième cas. L'octetn° 2 et les dix sui¬ 
vants ont la même valeur. Le programme 
de compilation va charger dans le fichier 
compilé un premier octet avec une valeur 
témoin pour indiquer qu'il y a compila¬ 
tion. Un deuxième odet contiendra le 
nombre de répétitions. Ici, nous aurons 
1 1 (octet n° 2 plus les dix suivants). 


Enfin un troisième octet contiendra la 
valeur de ces 11 octets. 

Comme vous le voyez avec seulement 3 
octets, nous en avons compilé 11. Dès 
que 4 octets se suivent en ayant la même 
valeur, la compilation nous fait gagner 
de la place. 

Deux cas nous en feront perdre. 

Si nous n'avons que deux octets identi¬ 
ques qui se suivent ou si un octet a la 
valeur du témoin. Là aussi, il nous fau¬ 
dra 3 octets pour en compiler un seul. 
D'où l'intérêt d'avoir une valeur témoin 
ayant peu de chance de se trouver dans 
votre dessin. Pour ma part, dans mes 
programmes. J'ai utilisé la valeur 103. 
C'est une configuration de pixels assez 
rare. Pour vous en convaincre, faites 
dans les 3 modes ; 

FOR H = &C100 TO &C200:POKE 
H,103:NEXT 



10 REH EN 
20 REM : : >EF 
30 REM : COMPILATION BASIC : XÜ 
40 REM : : >EH 
50 REM : : : ! : : : : : : : : ; : : : : : : : : : : : ; ; : : : î ; ET 
60 MEMORY J-IFFF >GA 
70 INP; 0,0; INK 1.24:MODE 2 >TE 
80 DIM ENCRE (16):NIND0W #1,1,78,25.25 -EX 
90 CLS #1:INPUT #1,"MODE "; MO >XV 
100 POKE 5(3000, MO >Ly 
110 IF M0=0 THEN NBErC=15:G0T0 140 >BZ 
120 IF M0=1 THEN NBENC=3:G0TQ 140 >AU 
130 IF M0=2 THEN NBENC=1 ELSE 90 >YV 
140 FOR H=0 TO NBENC >NH 
150 CLS #1:PRINT #1,"NUMERO DE L’ENCRE”;:PRINT #1,H;:IN >KY 
PUT #1.X 

160 ENCRE (H) =X: POKE ?<3001+H.X:NEXT >DJ 
170 as #1;INPUT #l."htt]M DU DESSIN A COMPILER ";F$ >VE 
180 MODE MO:FOR H=0 TO NBENC >WE 
190 INK H,ENCRE(H):NEXT >TK 


f 200 LOAD "!"+F$,!<C000 >MD 


210 ecran=&C000 ' BE 
220 Pack=&3020 )0C 
230 temoin=103 >ZK 
240 finecrân=!(FFA0 >NF 
250 a=PEEK(écran):K=0:coiiiPteur=0 :?CN 
260 IF a=103 THEN 340 >NN 
270 >;=x+l;b=PEEK(ecran+x) ;.>VJ 
280 IF a=b THEN co(iipteur=coinpteur+l:G0T0 270 >PD 
290 IF cofflPteur=0 TÆN 330 :.>UP 
300 POKE pack,temoin:P0KE pack+1.compteur:POKE pack+2.â .-'DG 

310 pack=pack+3:ecran=ecran+coiiipteur >KA 
320 IF ecran=finecran OR ecran>finecran THEN 360 ELSE 2 >BE 
5(< 

330 POKE Pâck,a:pack=pack+I;ecran=ecran+1:G0T0 320 )XC 
340 POklE pack, témoin:POKE pack+l,l:P0KE pack+2.103 >WH 
350 pack=pack+3:ecran=ecran+l:BQT0 320 >HP 
360 iongpac=Pack-!<3000 /RY 
370 lq*=HEX*(langpac):P0KE 5(3012,VAL("S("+RIGHT$(lq»,2)) .>AX 

380 POKE 5(3013,VAL("5("+LEFT$(lci$,2)' >CW 
390 MODE 2;CLS:INK 0,0;INK 1,24 >YA 
400 LOCATE 1.1:PRINT "COfPILATION TERMINEE...." >TB 
410 LOCATE 1,3:PRINT "DEBUT DE COMPILATION EN 5(3000" >ïA 
420 LOCATE 1,5:PRINT "LONGUEUR DU FICHIER ^";;PRINT k€X >RL 


é KLONGPAC) 


84 


CPC n” 36- Juillet/Août 1988 










BASIC/BINAIRE 

•Claude le MOULLEC 


Un autre problème peut se présenter. Le 
deuxième octet contient le nombre d'oc¬ 
tets identiques. Ce nombre ne peut être 
supérieur à 255. Un dessin avec de gran¬ 
des surfaces de la même couleur peut 
avoir cette configuration. Mais cela est 
très rare. Si vous pensez que votre des¬ 
sin est dans ce cas, faites : 

PLOT 640,l,hDRAW 640,400 

Grâce à ce trait, vous n'aurez jamais plus 
de 80 octets identiques à se suivre. 
Voici pour ce qui est de la compilation. 
Qui ait compilation dit aussi décompila¬ 
tion. C'est ce que nous allons étudier 
maintenant. 

Le programme de décompilation va lire 
le fichier créé par la compilation. Si l'oc¬ 
tet est différent de 103, celui-ci va être 
affiché tel quel à l'écran. Si sa valeur est 
103, le programme va afficher à l'écran 


autant d'octets que la valeur contenue 
après 103. Ces octets auront tous la 
valeur contenue dans le deuxième octet 
après 103. 

Voici succinctement expliqué le principe 
de la compilation/décompilation. 

Je vous ai écrit deux programmes de 
démonstration, l'un en BASIC, l'autre uti¬ 
lisant une routine en assembleur. 

LE PROGRAMME BASIC 

Ce programme n'est là que pour bien 
vous faire comprendre le principe expli¬ 
qué plus haut. Les variables que j'ai uti¬ 
lisées sont très parlantes. Néanmoins, ce 
programme ne compile que des pages 
écran entières. De plus, malgré la rapi¬ 
dité du BASIC Amstrad, la compilation 
prend plus de trois minutes et la décom¬ 
pilation à peu près autant. 


LE PROGRAMME BINAIRE 

Ici, la compilation et la décompilation ne 
prendront pas plus de deux secondes et 
il vous sera possible de travailler sur des 
fenêtres. Le fichier compilé débute à 
l'adresse &3000 mais le premier octet 
compilé seulement à l'adresse &3020. 
Ces 32 octets contiennent tous les para¬ 
mètres nécessaires au programme de 
décompilation (mode, couleurs, données 
de la fenêtre, etc.). 

La différence entre un écran complet et 
une fenêtre réside dans le fait que pour 
l'écran tous les octets se suivent de façon 
linéaire, tandis qu'avec une fenêtre, le 
premier travail du logiciel sera de retrou¬ 
ver cette forme linéaire en transférant 
tous les octets de la fenêtre à partir de 
l'adresse &6000. La suite sera identique 
à la compilation d'un écran sauf qu'elle 
débutera en &6000 et non plus en &C000. 
Pour le retour, la décompilation de la 
fenêtre se fera, elle aussi, en &6000 puis 
un sous-programme biriaire fera le trans¬ 
fert à l'écran. 

Vous voici en possession d'un outil per¬ 
formant, essayez d'en faire le meilleur 
usage. 

Bon courage et à vos claviers... 


430 LOCATE "MOM DE SAUVEGARDE DE CETTE COMPI /WA 

LAT™ "îNOMt 

440 SAVE "‘"+MOM$,B,S<3OO0.L0Ni3PAC /AV 

450 END >TC» 



10 REM >CA 
20 REM : s /ED 
30 REM ; DEC0^«=ILATI0N BASIC : /ZA 
40 REM ; ; >EF 
50 REM CE 
60 MEMORY jiZFFF /GA 
70 MODE 2:INK 0,0:INK 1,24 >TH 
80 LOCATE 1,1:INPUT “NOM DU DESSIN A DECOfff’ILER ";N0M» /BH 
90 LOAD "'"+NOM$,Î(3000 >PD 
100 M0=PEEK (Î!3000 ) : MODE >UH 
110 FOR H=0 TO 15;X=PEEK(Ï(3001+H):INK H,X:ICXT >P2 
120 ecran={(C000 >BE 
130 pack=l(3020 , )QC 
140 teiioin=103 >ZK 


150 finpack=8,3000+<PEEK(&3C12)-f256*FEEKiî.;3013;i >PU é 


160 a=PEEK(pack) 

170 IF a=i03 THEN 210 ElSE 130 
130 F0KE écran,a 
190 ecr àn=ec ran+i : pacK^t' ac c * 1 

200 IF Pâck=Finpàck OR pack/t inpack THEN 280 EL3E 160 
210 corapteur=PEEK(pack+l) 

220 vaieur=PEEK(pâck+2) 

230 x=0:F0R h=l TO compteur 
240 POKE ecrân-t'X,vâleur 
250 x=x+l:NEXT 

260 pack=pack+3:Bcran=ecrân+compteur 

270 GOTO 200 

2B0 CALL «(BB1B:END 


/LD 

/Z2 

>WE 

>WF 

>TG 

/Wh 

>UR 

/DJ 

>HE 

>YH 

>MY* 



10 REM .>FJ 

20 REM : : >EG 
30 REM : COMPILATION BINAIRE : >ZL 
40 REM : : /EJ 
50 REM >FN 
60 hEMORY îi2FFF >GA 


70 FOR h=8(A000 TO ?(A100:READ A$:P0KE H,VAL("?!"+A$):NEXT >YM 


CPC n ° itf - Juillet/Août 1988 


85 














80 I?»: 0.0: INK 1,24:MODE 2 >TF f 


90 DIM ENCRE (16):WINDOW #1,1,78,24,25 >EX 
IfjÔ CL3 #1:INPUT il."MODE ";M0 >XT 
110 POII Se30O0,M0 >LZ 
120 IF MO=<0 THEN NBENC=15:SOTO 150 >BB 
130 IF M0=1 THEN NBENC=3:eOTO 150 >A« 
140 IF M0=2 THEN NBENC=1 ELSE 100 >ZR 
150 FOR H=0 TO NBENC >NJ 
160 CLS il:PRINT #1,"NUMERO DE L'ENCRE"::PRINT #1,H;:IN >KZ 
PUT #1,X 

170 ENCRE(H)=X:P(J<E !(3001+H,X:NEXT >DK 
1&) CLS #1:PRINT #1,"ECRAN COMPLET OU FENETRE (E/F >E0 
) ?" 

190 A$=INKEY$:IF A$=''" THEN 190 >XC 
200 A$=UPPER$(A$):IF A$="E" THEN 230 >BJ 
210 IF A$="F" THEN 370 B.S. 190 >VH 
220 REM :::: COMPILATION D'ECRAN :::: >VJ 
230 CLS ihINPUT #1, "NOM DU DESSIN A COMPILER ":F$ >VB 
240 MODE MO:FOR H=0 TO NBENC >WB 
250 INK H,BCRE(H):NEXT >TG 
260 LOAD "'"+F$,tCOOO >NB 
270 CALL &A000 >JG 
280 CLS:MODE 2:L0CATE 1,1:PRINT "COIff'ILATION DE ";Fi;" >IW 
EFFECTUEE..." 

290 LOCATE 1,3:PRINT"DEBUT DE COt^ILATION EN î(3000’ >YY 
300 LOCATE 1,5:PRINT"L0NGUEUR DU FICHIER i"; >t|J 
310 LGFICH=(PEEK(Î(A00E)+256 *PEEK;(?cAOOF))-?(3OOO >PB 
320 PRINT HEX$(LGFICH) >RQ 
330 LOCATE 1,10:INPUT "DONNEZ UN NOM A CEHE COMPILATIO ; MN 
N POUR SAUVEGARDE "îFC* 

340 SAVE *!"+FC*,B,8(3000,LGFICH >V0 
350 END /TB 
360 REM ::: COMPILATION DE FENETRE :;: >FD 
370 INPUT #l,”PARA^ETitt3 COMME POl^ UNE WINDOW : (EX 10, >ZE 
20,4,8)";A,B,C,D 

380 IF M0=0 THEN X=4 >Ng 
390 IF M0=1 T'HEN X=2 >N0 
400 IF M0=2 THEN X=1 >NG 
410 DEPTRANS=î£0O0+(C-l)*B0+(A-l)*X:At=HEX$(DEFTRANS) >ZQ 
420 NBLIGNE=((DH)-C)*8 :>RD 
430 QCTRANS=((B+1)-A)»X >RP 
440 FINTRANS=(NBLIGNE*OCTRANS)+!e6000:B$=t€X$(FINTRANS) >DR 
450 PIXE îi3016,VALCJ("+RIGHT$(B$,2)) >CZ 
460 POKE {t3017,VAL("«("+LEFT$(B*,2)) >BF 
470 POKE ltA007,NBLIGNE:POKE 8(3019,NBLIGNE >KA 
480 POKE 8(AÛ08,0CTRANS:P0KE 8(3018, OCTRANS >LB 
490 POKE 8(A003,VAL("8'"+RIGHTJ(A$,2)):P0KE 8(3014,VALC'i" >QP 
+RIGHTÎ(A$,2)) 

500 POKE 8(A004,VAL("8("+LEFT$(A$,2)):P0KE 8(3015,VAL("8("+ >MF 
LEFT$(A$,2)) 

510 INPUT #1,"N0M DU DESSIN A COMPILER ";F$ /NN 
520 MODE MO:FOR H=0 TO NBENC >WC 
530 IN8: H,ENCRE(H):NEXT >TH 
540 LOAD "!’'+F$,8(COOO /NC 
550 CALL 8(A0D0:REM TRANSFERT DE LA FENETRE EN 8(6000 >TL 
560 CALL 8(A000:REM COW’ILATION >ZP 
570 GOTO 280 >ZJ 


580 REM ::::: DATA DE LA RIXJTIÆ :::: /CD 

590 DATA C3,12,AO,œ,00,00,60,00,00,00,CO,AO,FF,00,20,3 >UC 
0,01,ÛO,3A,11,30,FE,01,20,OE,21,00,60,22,09,AO,2A,16,30 
,22,OB,AO,OO,OO,2A,O9,A0,7E,FE,67,C2,3A,AO,23,22,O9,AO, 

CD 

600 DATA A0,A0,C3,66,AO,23,46,B8,28,OE,22,09,A0,2A,0E,A >WK 
0,77,23,22,OE,A0,C3,66,AO,32,ll,AO,F5,3A,10,A0,3C,32,10 
,A0,Fl,0O,23,46,B8,CA,50,AO,22,O9,AO,CD,B6,A0,CD.83,A0, 

3A 

610 DATA 0D,A0.FE,Ol,CA,79.AO,3E,01,32,10,A0,C3,27,A0,2 >XQ 

A,OE,AO,22,12,30,C9,00,00,00,2A,09,AO,ED,5B,OB,AO,7C,BA 

,CA,9O,A0,C9,7B,BD,F2,96,AO,C9,21,OD,AO,3E,Ol,77,C9,OO, 

00 

620 DATA 00,2A,0E,A0,3E,67,77,23,3E,01,77,23,3£,67,77,2 >UU 
3,22,OE,A0,C9,0O,0O,0O,2A,0E,A0,3E,67,77,23,0O,3A,10,A0 
,77,23,00,3A,11,AO,77,23,22,OE,AO,C9,00,00,00,2A,03,A0, 

ED 

630 DATA 5B,05,AO,3A,07,AO,47,C5,E5,3A,08,AO,47.7E,12,1 >PZ 
3,23,10,FA,El,CD,26,BC,Cl,10,ED,3E,01,32,11,30,09,00,00 
, 00, iXi, 00,00,00,00,00,00,00,00,00# 

k 


10 REM >EN 
20 REM : : >ef 
30 REM : DECOMPILATION BINAIRE : >BU 
40 REM : ; >EH 
50 REM :::::::::::::::::::::::::::::: >ET 
60 MEM(KY 8(2FFF >GA 
70 FOR h=8tA100 TO 8(A1B0:READ a$:POKE h,VAL("8("+â$):NEXT >YH 

80 MODE 2:INK 0,0:INK 1,24 >TJ 
90 LOCATE 1,1:INPUT "NOM DU FICHIER A DECOMPILER ";NOM$ >DH 

100 LOAD "!"+NOH$,8(3000 >PV 
110 MO=PEEK (8(3000): MODE »o >VA 
120 FOR H=0 TO 15:X=PEEK(8(3001+H) : Ut; H,X:NEXT >PA 
130 CALL 8(A100:REM DECOMPILATION >BH 
140 CAa 8(BB18:END >HT 


150 DATA C3,0D,A1,00,C0,0A,F,20,30,00,00,00,00,3A, 11,3 >VA 

0,FE,Ô1,C2,24,A1,21,00,60,22,03,A1,2A,16,30,22,05,A1,00 

,00,00,2A,07,A1,ED,5B,03,A1,7E,F,67,CA,41,A1,12,13,ED, 

53 

160 DATA 03,A1,23,22,07,Al,C3,4F,A1,00,00,00,23,46,23,7 >WL 

E,12,13,10,FC,C3,33,A1,00,00,00,CD,6C,A1,3A,09,A1,FE,01 

,CA,5D,A1,C3,24,A1,3A,11,30,F,01,C2,68,A1,CD,89,A1,C9, 

00 

170 DATA 00,00,2A,03,A1,ED,5B,05,A1,7C,BA,CA,79,A1,C9,7 >HA 
B,BD,F2,7F,A1,C9,21,09,A1,3E,01,77,C9,00,00,00,2A,14,30 
,11,00,60,3A,19,30,47,C5,E5,3A,18,30,47,1A,77,13,23,10, 

FA 

180 DATA El,CD.26,BC,Cl,10,ED,C9,00,00,00,00,00,00,00,0 >EB 


86 


CPC n" 36- Juillet/Août 1988 








AMSLETTRES 

Patrice SCHOUMACHER 


Ce programme permet à partir d’un menu 
principal (par inversion vidéo) de choisir 
entre 12 écritures différentes, c’est-à-dire une 
redéfinition totale du clavier. 

AMSLETTRE permet aussi de choisir entre 4 
tailles différentes de lettres et cela en fonction 
du mode écran dans lequel on se trouve, soit 
en fait 3 modes (0, 1, 2) x 4 (tailles) = 12 
tailles différentes. 

UTILISATION DU PROGRAMME 

Ü ne meilleure gestion de son ordinateur et de 
l'imprimante. 

- Création de ses propres pages de présentation pour 
des logiciels personnels. 

- Rédaction de titres ou d'en-têtes, si l'on veut par exem¬ 
ple faire un journal ou un dossier quelconque. 



L'un des avantages certains est que l'on peut utiliser 
séparément des fichiers (qui redéfinissent les lettres) pour 
ses propres logiciels d'aventure. 

POUR OBTENIR UN FICHIER BINAIRE 

Taper le programme BASIC correspondant. Les instruc¬ 
tions pour savoir sous quel NOM il faut le sauver en 
BINAIRE figure sous forme de REM (remarque) au début 
de chaque programme BASIC. 


Exemple : taper le programme BASIC, faire RUN puis : 
SAVE "Nom du fichier",B,40700,2048 

ORGANISATION DU PROGRAMME AMS- 
LET.BAS (PROGRAMME CENTRAL) 

Avant tout, je tiens à préciser que seule ia routine per¬ 
mettant d'obtenir des caractères de tailles différentes 
n'est pas de moi, elle est parue dans CPC n® 13. 

J'ai repris cette routine car elle permet en fait de recréer 
un "zoom" ce qui rend le programme plus crédible. 

Liste des variables ; 

PPVariable pour les couleurs du fond de l'écran 
BB Variable pour les couleurs du bord de l'écran 
EEVariable pour les couleurs de l'écriture 

MD Variable pour le MODE (0, 1, 2) 

Ml Variable pour les minutes. 

A, K, KR, TB, TA, CH, KR$ 

Variables pour les inversions vidéo et le déplacement 

TAI Variable taille. 

A$ et B$ Variables pour le mot entré. 

Y, Y1, Y5, Y6 
X, XI, X2, X5, X6 

affichage fenêtre 

NOMM$ Variable pour le nom de sauvegarde ou de 
chargement de la page écran. 


AbCdEfGhI4 RbCdEf GhI js 

RbCdEfGhlji flî><îô£l«3>Jù6nbCdEFGhIii .\SSS 
^bCdE;FGhIq2 AbCdKrChl j 
RbCdEPGhlIi3 abCdEPGbïJs RbCdEPChI12 

flbCdEfGh I j4 


Mode 1 ; taille normale, 12 écritures différentes. 


Mode 1 


Mode 2 


CPC 



EK CPC CPC [E 

56 7 8 

CPC 


12 


CPC n"" 36- Juillet/Août 1988 


87 












LE FONCTIONNEMENT 

MENU PRINCIPAL 

Le choix des possibilités se fait avec les curseurs flèches 

? ui sont indiqués par une inversion vidéo. 

os possibles : le choix est fait avec les flèches puis 
[ENTER] sauf pour certaines instructions où il faut 
appuyer sur les touches du clavier. 

:xemple, pour les couleurs : 

B] POUR LE BORD DE L'ECRAN 
y POUR L'ENCRE 
F] POUR LE FOND 
M] POUR LE MODE CHOISI (0, 1, 2) 

Q] POUR QUITTER AMSLETTRE 

MODE OPERATOIRE 

Se placer sur [NOM] puis [ENTER], enfin écrire le mot 
dons l'espace réservé. 

MODEl : 19 lettres possibles 
MODE 2 ; 29 lettres possibles 
MODE 0 : 9 lettres possibles. 


1 


U 







Après, choisir la taille du MOT en se plaçant sur [NOR] 
puis [ENTER]. 


- 1 FOIS 

- 2 FOIS 

- 3 FOIS 

- 4 FOIS 


ENTER' 

ENTER' 

ENTER 

ENTER' 


= double largeur. 
= double taille. 

= double hauteur. 
= normal. 


Enfin se placer sur l'un des 12 types d'écritures puis 
[ENTER] (si le type d'écriture est déjà chargé, appuyez 
directement sur [COPY]). 


MODE DESSIN 

Le déplacement du mot se fait grâce aux curseurs flèches. 
Si l'emplacement choisi convient, appuyez sur [COPY] = 
mémorisation de la page écran. Si l'on veut charger 
quelque chose sans mettre en mémoire la page écran 
(taille, mode, mot) appuyer sur la barre espace ce qui 
provoque un retour au menu. Si on veut effacer tout 
l'écran, appuyer sur [CLR]. 


AHENTION 

Dans ce numéro, vous ne trouverez que 2 
listings correspondant aux caractères 
"ELARGIE" et '^ATA". Les listings suivants 
seront publiés dans le prochain CPC. 


10 ' *» version v3.2 ♦* ;LA 
20 • *♦ SCHOUMACHER P >LB 
30 CLEAfi’ >DB 
40 MODE 1 >BG 
K PP=26:bb=13:ee=l >NB 
60 SYMBOL AFTER 0 >MQ 
70 dâtu(n=INT(TIME.'300) >TY 
80 INK 0.3 :INK. l.IhBORDER 13:FEN 0 >BF 
90 PAPER 1;PEN 2 >FE 
100 LOCATE 8,5:PRINT A H B L E T T R E ! ♦*’ >FL 
110 a=ji8000:FOfi i=100 TO 400 STEF' 10:5=0 >EW 
120 FOR j=l TO 10 >BG 
130 READ x«;xx=VAL("!(’'+x$):P0KE a.xx;s=s+xx:a=a+l >VD 
140 NEXT j >|\|E 
150 READ xxtIF sOxx THEN PRINT"Erreur en ligne";i:END >GG 
160 NEXT i >NF 
170 CALL «<8000 >H6 
180 CLS tLOCATE 8,12:PRINT"Double taille initialisée", >00 
CW$(7) 

190 FOR 1=1 TO 500: NEXT I;flii=0;(iid=l:GOT0 530 >LA 
200 DATA *«*♦**♦*♦«* >RC 

210 DATA 2a,d4,bd,22,2b,80,01,13,80,21,829 >HM 
220 DATA Of,80,c3,dl,bc,00,00,00,00,21,76B >GG 
230 DATA 80,c3,2d,B0,c3,34,80,c3,3b,80,1253 >JR 
240 DATA c3,42,80,44,cc,44,c8,44,d4,53,1292 >JF 
250 DATA d4,00,c3,ff,ff,21,49,80,22,d4,1397 >JV 
260 DATA bd,c9,21,97,80,22,d4,bd,c9,21,1371 >JR 
270 DATA ce,80,22,d4,bd,c9,2a,2bi80,22,1217 >JV 
280 DATA d4.bd,c9,f5,e5,le,02,cd,a5,bb,1665 >KX 
290 DATA 3e,19,cd,5a,bb,3e,ff,cd,5a,bb,1368 >KH 
300 DATA 0e,08,06,04,56,af,cb,4b,20,0e,617 >iC 


310 DATA cb,22,cb,22,cb,22,cb,22,18,04,976 >HU é 


♦ 320 DATA cfa,27.cb,27,cb,22.30.02,f6,03.1020 ,;JF 

330 DATA 10.f4.cd.5a,bb.23,0d,20,db.3e,1103 >J6 

340 DATA ft,el.d5,e5,cd,2a,80,el,dl,ld,1760 >KW 

350 DATA c3,3e,09,cd,5a,bb,fl,24,e5,18,12B3 >JC 

360 DATA b6.f5,2d,e5.1e.02,cd,a5,bb.3e,1352 .>KR 

370 DATA 19,cd,5a,bb,3e,ff,cd,ja,bb,0û.l312 >1<:A 

380 DATA 04.cb,4b.20,04,23,23,23'i23.7e.584 >HF 

390 DATA cd,5a,bb,cd,5a,bb,23,10,'f6,3e,1323 >KB 

400 DATA ff,el,d5,e5.cd,2a,30.el,2c,dl,1775 >KZ 

410 DATA Id,c8,fl,e5,13,ce,f5,2d,e5,le.l47B >KW 

420 DATA 04,cd,a5,bb,3e,19.cd,5a,bb.3e.ll92 >KD 

430 DATA ff,cd,5à,bb.cb,43,28,04,23.23.1121 )JD 

440 DATA 23,23,0e.04,06,04.56,7b,fe.03,564 >HL 

450 DATA 30,08,cb,22,cb,22,cb.22,cb.22.1004 >Jü 

460 DATA af.cb,27,cb,27,cb,22,30,02,f6,1192 >JL 

470 DATA 03,10,f4,cd,5a,bb,cd,5a,bb.23,1262 >KC 

480 DATA 0d,20,d9,3e,ff,el,d5,e5,cd,2a,1493 >KH 

490 DATA 80,el',dl,cb,43,c2,21,81,2c,7b,1355 >JG 

500 DATA fe,03,c2,2e,81,3e,09,cd,5a.bb,1179 >KD 

510 DATA 2d,24,fl,ld,c8,f5,e5,lB,9e,00,1207 >JN 

520 '♦***♦*♦*♦♦♦««*♦*♦«♦*«»#»* DECOR ***♦#*♦♦♦♦* >RH 

530 IST 

540 INK 0,ee:INK l,pp:B0RDER bb >ZX 

550 MODE 2: CALL «<8803 >PL 


560 MOVE 85,269:DRAW 537,269:DRAW 537.322:DRAW 85,322:D >KE 
RAW 85,269 

570 MOVE 76,173:DRAW 4Û2,173:DRAW 402,195:DRAW 76,195:D >KJ 
RAW 76,173 'bas 

580 MOVE 76,204:DRAW 500,204:DR«i) 500,173:DRAW 586,173: >NR 
DRAW 586,258:DRAW 500,258:DRAW 500,226:DRAW 76,226:DRAW 
76,204 

590 MOVE 20,45:DRAW 115,45;DRAW 115,67;DRAW 20,67:DRAW >DB 


88 


CPC n " ié - Juillet/Août 1988 







20.45 ' dep 

600 MOVE 164,45:DRAW 443.45:DKAl«i 443.è7;DF;AW 164,67:DRA /GH 
W 164,45 'esp 

610 MOVE 509.45:DF;hW 554.45:DRAW 554.67:DRA« 500,67:DRA >PD 
K 50(i,55;DRAW 509.55: DRAW 509.45 'ent 
620 MDVE 508,109:DRAW 547,109:DRAW 547,130:DRAW 508,130 >NT 
:DRAW 508,109 'cop 

630 LOCATE 29.2:PRINT AM3LETTRE >TF 

640 LOCATE 5,3:PRINT STRING$(73.CHR$(154)):LOCATE 5,16: >I1X 
PRINT STRING$(73,CHR$(154)) 

650 FOR 1=4 Tü 15;L0CATE 4,I;PRINT CHR$(149):LOCATE 78, >FE 
I:PRINT CHR$(149);NEXT I 

660 LOCATE 4,3:PRINT CHR$(150):LOCATE 70,3:PRINT CHR$(1 /DE 
56) 

670 LOCATE 4,16:PRINT CHR$(147):LOCATE 78,16:PF:INT CHR$ /FE 
(153) 

680 LOCATE 20,18: PRINT STRIN6$(38,CHR»(154)):L[]CATE 19 >JJ 
,18:PRINT CHR$(147):LOCATE 58,iB:PRINT CHF:$( 153):LOCATE 
19,17:PRINT CHR$(149):LOCATE 58,17:PRINT CHR$(149) 


690 LOCATE 19,16:F'RINT CHRS(158) 
1(158) 

;L0CATE 58,16:PRINT CHR 

>GA 

700 LOCATE 34,10:PRINT "Heure : 

tt 

>BU 

710 LOCATE 22,22;PRINT " 

II 

ESPACE POUR REVENIR 

>DM 

720 LOCATE 27,14;PRINT"N0R" 


>WZ 

730 LOCATE 20,17;PRINT"!!iots :"; 

N 

II 

>G2 

740 LOCATE 38,14:PRINT "*♦ 

tHt" 

>CR 

750 LOCATE 4,22:PRINT "déplacement" 

>HT 

760 LOCATE 9,18: PRINT CHF»(240): 

iLOCATE 9,20:PRINT CHR$( 

>EJ 


241) 

770 LOCATE 7,19:PRINT CHF$ (242) : LOCATE ll,19:PRIf4T CHR$ >FX 
(243) 

780 LOCATE 65,18:PRINT "COPY":LXATE 60.20:FRINT"iiiise e /VO 
n mémoire" 

790 LOCATE 65,22:PRINT "ENTER":LOCATE 62.24:PRINT"pour >RE 
valider" 

800 ’***#♦*♦*#**♦**♦•»#*♦**#*»♦*»♦♦**♦ TEXTE ***** /RJ 

44 JL JL JL JC JLJL^ JL JL 

T WT T T T w IMi Hjfjr «A ftTiR T» T 

BIO k=l:kr=4:tb=12:a=243:ch=0:t=5:TAI=l:a4=" " 

820 X=10:Y=12:X2=20;ii=0 
a30 DIM kr*(4,4) 

840 kr$(l,l)="elargie":kr$(1.2)="d 
ue'';kr$(l,4)="Pin" 

850 kr$(2,l)="(noderne":kr$(2,2)="m 
al":kr$(2,4)="digital" 

660 kr$(3,l)="nouveau":kr$(3,2)="q 
que":kr*(3,4)="reduit" 

870 kr$(4,l)="mot5":kr$(4.2)="tail 
r«(4,4)="sâve" 

880 LOCATE 12,6:PRINT "élargie 
othique fin " 

890 LOCATE 12,7;PRINT "moderne 
edieval digital" 

900 LOCATE 12,8:PRINT "nouveau 
raphique réduit 

910 LOCATE 11,12;PRINT "[mots] 




>QX 



>TC 



>ZK 

:kr$(1.3) 

="gothiq 

>GT 

':kr$(2,3) 

='-inediev 

>PQ 

':kr$(3,3) 

="graphi 

>0Y 

krt(4,3) = 

"load":k 

>ZG 

data 

g 

>L0 

main 

m 

>PC 

gras 

9 

>PD 

[taille] 

[ 

>HH 



DI5COLOQY 


V»rsion 5.1 


POUR VOUS SURPASSER 

3 Programmes en 1 
pour votre Amstrad CPC 


L’EDITEUR: 

Un Editeur universel de secteurs et de fichiers. Grâce à sa boîte à outils 
exceptionnelle, (Désassembleur, Calcuiotrice, Listeur Basic...) tout devient possible. 

LE COPIEUR: 

Un Copieur intégral pour la sauvegarde de vos disquettes et cassettes. 

Il vous étonnera por ses performances et sa simplicité d'utilisation. 

L'EXPtOREUR. 

Un graphique animé en 'Temps Réel' qui vous révélera tous les secrets de vos 
disquettes. Un programme sons équivalent. 

LES 7 POINTS FORTS DE DISCOLOGY 

> La facilité : Grâce aux Fenêtres, aux Menus Déroubnts et à l'Aide Intégrée. 

> La vitesse : 160 Ko de Langage Machine pur 1 

y La documentation : Un Manuel complet et une notice technique approfondie. 

> La compatibilité : Il gère toutes les extensions mémoire et les lecteurs 51/4 pouces. 

> La performance : Incroyal^e et absolue, 
y L'inédit : Du vraiment jamais vu I 

> La référence : Des milliers d'utilisateurs enthousiastes en France comme 

à l'Etranger. DISCOLOGY est reconnu et acclamé par b presse internotbnole. 


Revendeurs, contoctez-nous I 

DISCOLOGY Version 5.1 est disponible immédiatement, sons frais de port, 
auprès de 

MERIDIEN Informotfqu* 

5 «t 7, La canabièra 13001 Marsaill* Tél. : 91.94.15.53 

BON DE COMMANDE ^ 

Variion 5.1 

pour Amstrad CPC Disponibilito ImmAdioto. 

□ Je commande DISCOLOGY au prix de 350 F i I 

□ Je commande Master Save V 3.2 (Copieur seul) ou prix de 190 F 

□ Je possède déjà Master Save et je commande DISCOLOGY. 

Je joins ma disquette Master Save et je ne paye que 160 F 

Je règle ma commande : 

□ par chèque joint (port grotuit) 

□ contre-remboursement (-f 30 F de frais de port) 


Nom :_ 

Adresse ; 


.Prénom :. 


Code Postal : , 

Tèl.:_ 


Ville: . 


A retourner à MERIDIEN Informatique 
5 et 7, La Canebière -13001 MARSEILLE 


01 




CPC n° 36-Juillet/Août 1988 


89 


NEWS 91.50.80.41 






























load] [sav'e]" 

920 kr=4: 3=243: G05UB 102ô:e0SUB 1090 

930 affichage 

940 ta=12:FDR i=l TO kr 
950 LQCATE ta,t:+t 

960 IF ch=i THEN PRINT CHR$(24);kr$(l!,i):CHRfi24) EL5 
E PRINT kr$(k.i) 

970 ta=Ta+LEN(kr$(k,i))+10 
980 NEXT i 
990 GOSüB lOBO 

iÛOO '♦#*»*****if******»***#*#***»**# DEPLACEMENTS *** 

*#»-»***#*»*it»###*#*#**#* 

1010 IF a=242 THEN ch=ch-l:îF ch=0 THEN ch=kr 
1020 IF a=243 THEN ch=ch+l:IF ch=kr+l THEN ch=l 
1030 IF a=240 THEN GOSUB 1230 
1040 IF 3=241 THEN GOSUB 1270 

1050 IF a=13 THEN b=ch:GOTD 1320 
1060 GOTO 940 

1070 REM AFFICHAGE ET REPONSE PRES 

ENTATION »*♦*♦♦♦»♦##♦♦♦* 

1080 A$=INKEY$ 

1090 heure=INT((TIME/300)-datum):IF heure>59 THEN datum 

=INT (TIME/300):heure=0;mi=(ni+l 

llOt) IF INKEY(54)=0 THEN bb=bb+l:IF bb>26 THEN bb=0 

1110 IF INKEY(27)=0 THEN pp=pp+l:IF pp>26 THEN pp=0 

1120 IF INKEY(58)=0 THEN ee=ee+l:IF ee>26 THEN ee=0 

1130 IF INKEY(9)=0 THEN GOTO 1770 

1140 IF INKEY(3S)=0 THEN MD=MD+1:IF MD>2 THEN Î1D=0 

1150 IF INKEY(67)=0 THEN GOTO 2340 
1160 LQCATE 11,14:PRINT “MODE “:MD 
1170 LOCATE 41.10:PRINT mi;"m";heure;"s" 

1180 LOCATE 64,10;PRINT "border";bb:BORDER bb 

1190 LOCATE 64,12:PRINT "paper ";pp:INl; l,pp 

1200 LOCATE 64,14:PRINT "encre ":ee:INK O.ee 

1210 IF A$="" THEN 1080 ELSE A=ASC(A$):RETURN 

1220 '##«*♦»♦♦♦»♦♦*#**»♦♦*♦♦*# efface ANCIENNE LIGNE * 

1230 FOR j=l TO 4:L0CATE tb,k+t:PRINT kr$(k,j):tb=Tb+LE 

N(kr$(k,j))+10:NEXT j 

1240 k=k-l:IF k<l THEN k=4:t=8 ELÈE t=5 

1250 tb=12 

1260 RETURN 

1270 FOR j=l TO 4;L0CATE tb,k+t:PRINT krt(k,j);tb=Tb+LE 

N(kr$(k,j))+10:NEXT j 

1280 k=k+l:IF k>3 THEN k=4:t=8 ELSE t=5 

1290 tb=12 

1300 RETURN 

1310 ' »**«**«*♦♦»»♦*♦♦*«♦**♦*♦*♦*»*♦♦# CHARGEMENT *♦ 
*♦***♦♦♦**#*♦♦#♦♦♦**♦♦*♦ 

1320 LOCATE 38,14:PRINT "♦» «♦";L0CATE 40,14:PR 

INT kr$(k,ch) 

1330 IF k=l THEN ON b GOTO 1370,1390,1410,1430 

1340 IF k=2 THEN ON b GOTO 1450,1470,1490,1510 

1350 IF k=3 THEN ON b GOTO 1530,1550,1570,1590 

90 


< 

> 1360 

IF k= 

=4 THEN ON b GOTO 1620,1690,2190.2100 

>KF 

/DF 

1370 

LOAD 

"l.bin".40700 

>FA 

;TC 

1380 

GOTO 

1770 

/NE 


1390 

LOAD 

"2.bin". 40700 

•RD 

>0B 

1400 

GOTO 

1770 

:=MH 

:>MJ 

1410 

LOAD 

■'‘.bin’'.40'0C 

F.A 

>RQ 

1420 

GOTO 

' ~7''* 

M/' 

1 :î-. 


1430 

LOAD 

''5.bin'',4070C 

>FE 

>vW 

1440 

GDTC 

1770 

Nî. 

/PF 

1450 

LOAD 

"9.b in".40700 

>Rri 

/QJ 

1460 

GOTO 

1770 

>ND 

>XD 

1470 

LOAD 

"S.b in".40700 

/RJ 


1480 

GOTO 

1770 

/MF 

/LY 

1490 

LOAD 

"7.bin", 40700 

/RK 

>NB 

1500 

GOTO 

1770 

>MJ 

>W 

1510 

LOAD 

"4.b in".40700 

>RZ 

y-JB 

1520 

GOTO 

1770 

/NA 


1530 

LOAD 

"10.bin".40700 

>RB 

>YR 

1540 

GOTO 

1770 

>NC 

>FF 

1550 

LOAD 

"3.b in".40700 

>RC 

/BK 

1560 

GOTO 

1770 

>NE 


1570 

LOAD 

"12.bin ",40700 

■>RH 

>XC 

1580 

GOTO 

1770 

/N6 

>WR 

1590 

LOAD 

"11.bin",40700 

/TA 


1600 

GOTO 

1770 

/MK 

/TZ 

1610 

#♦**♦♦♦***♦#*#*♦♦♦♦♦*♦*#*,(.4 N(0TS **»* 4444 * 4 *** 

:-YA 




>TG 

>2B 

>RJ 


>AD 

>BX 

>JN 

>RF 

>PC 

:>NU 

>LY 

>XH 


1620 PRINT CHR$(7) m 

1630 LOCATE 20,17:PRINT "mots :":LOCATE 27.17:INPUT root ;DA 

I 

1640 IF LEN(root$)>19 AND MD=1 THEN SOUND 1,153,10:30 tO >5C 
1630 

1650 IF LEN(fflot$)>9 AND MD=0 THEN SOUND 1,156,10:G0TG 1 >AA 
630 

1660 IF LEN(mot$)>29 AND MD=2 THEN SOUND 1,158,10:GOTO >BG 
1630 

1670 GOTO 940 >GC 

1680 '♦****♦*♦♦**♦*♦**#»*»#♦#*«#«■♦ taille i-YH 

»#♦»♦♦*#**♦♦♦*#»♦*♦«»*» 


>DP 

>EC 

>LA 

>FC 

>DU 


>FV 

>LE 

>EH 

>XH 


>MG 


>KF 
>KN 
>KW j 


1690 PRINT CHR$(7) ;.MH 
1700 tai=tai+l;IF tai>4 THEN tai=l >BW 
1710 IF tai=l T1€N LOCATE 27,14:PRINT"NQR" >KT 
1720 IF tai=2 THEN LOCATE 27,14:PRINT"r)0L" >KC 
1730 IF tai=3 THEN LOCATE 27,14;PRÎNT"DOT" >KN 
1740 IF tai=4 THEN LOCATE 27,14;PRINT"D0H" >KC 
1750 GOTO 940 >GB 


1760 '♦#♦*»*♦*♦♦*♦*#*#♦*♦*♦*♦♦»**.* dessin *♦**♦*♦**♦# >YG 
*♦*♦♦*»♦♦♦*♦*•»*♦*♦*♦♦*** 


1770 MODE md:INK 0,1 :INK 1,26;B0RDER 13 >FN 

1780 CALL Ï(BC06,!(C0 >tlQ 

1790 IF TAI=1 AND MD=0 THEN IF LEN(M0Tî)>9 THEN MOT$=LE >MX 
FT$(M0T$,9) 

1800 IF iTAI=2 OR TAI=3) AND MD=0 THEN IF LEN(MDT$)>9 T )AC 
HEN M0T$=LeFT$<M0T$,9) 

1810 IF (TAI=2 OR TAI=3) AND MD=1 THEN IF LEN(M0T$)>19 >DD 
THEN M0T$=LEFT$(M0T$,19) 

1820 y=23:y5=y;yl=25:y6=y 1 : x=l:x5=x: x1=a+LEN iisaïi) t x6=x /TZ 


CPC n” 36- Juillet/Août 1988 





l:b$=STRING$(>:l-i,CHRI{123;) 


1830 IF MD=2 THEN X2=80 >3'v 
1840 IF MD=I THEN x2=40 >00 
1850 IF MD=0 THEN X2=20 >QN 
1860 IF TAI=1 THEN IST >3Q 
1370 IF TAI=2 THEN IDL >Q.T 
1380 IF TAI=3 THEN :DT >QD 

1890 IF TAI=4 THEN ÎDH >£1T 


1900 IF TAI=2 OR TAI=3 THEN xl=xl*2:>:10=xl-2;tsille=l: >AR 
ELSE }:l=xl;taiile=0 

1910 IF INf;EY{9i=0 THEN SOUND 1,200,10:CALL ï-BCOà.MO : >UK 
ERASE K'R$:GOTO 530 sauve mémoire 

1920 IF INKEY.(16)=0 Tf£N GOTO 2270 'EFFACER >AJ 

1930 IF INKEY(47)=0 THEN WINDON #l,x,:<l.y,yl:F1îINT #l,b >WY 
$:CALL 8(BC06,S(40: ERASE KR$:GOTO 530 

1940 IF INKEY(2)=0 THEN y5=y:y=y+2:y6=yl:yl=yl+2:x5=x:x >VJ 
6=xl :GOTO 1990 

1950 IF INKEY(0>=0 THEN y5=y:y=y-2:y6=yl:yl=yl-2:x5=x:x Æ 
6=xl :BOTO 1990 

1960 IF INi<EY(8)=0 THEN x5=x:x=x-l:x6=xl:xl=xl-l:y5=y;y /VQ 
6=yl :GOTO 1990 

1970 IF INKEY(l)=û THEN x5=x:x=x-fl:x6=xl:xl=xl+l:y5=y:y >VE 
6=yl :GOTO 199C' 

1980 ' ♦*#*♦*#*■»***♦♦***♦*♦**♦♦♦»♦**♦ TEST >ZA 

*»*♦*♦********♦■»*#**#*♦* 


1990 IF y<2 THEN y=2:yl=5:3QUND 1,100,1 >GD 
2000 IF yi>25 THEN yl=25:y=23:SQUND 1,100,1 >KA 
2010 IF x<l AND taille=l THOv x=l! xl=xl0:30üND 1,300.1 >XU 

2020 IF xl>x2 AND taille=i THEN xl=x2:x=xl-xl0:S0UND 1. >FL 
300,1 

2030 IF x<l THEN x=I:xl=x+LEN(mot$):SOUND 1,100,1 >TF 
2040 IF xl>x2 THEN xl=x2:x=xl-LENiiKit$):Sa.lND 1,1C»0,1 /YH 
2050 WINDGW #l,x5,x6,y5,y6:PRINT #l.bf >FG 
2060 WINDOW #l,x,xi,y,yl:PRINT 11,mot» >6P 
2070 GOTO 1910 >t1H 
2080 1 ST;GOTO 520 


2090 '»#i(*»***'****#******'»***»**#* SAUVEGARDE ***♦♦»*♦♦ >YD 


2100 PRINT CHR$(7):L0CATE 27,17:PRINT ''0/N'':L0CATE 30.1 >RN 
7;ÎNPUT nomm» 

2110 IF no»m»="n" OR no!nra»="N'' THEN LOCATE 27.17:FRINT ;FH 
" "tGOTO 940 ELSE PRINT CHR$(7):L0 ChTE 27,17: 

PRINT " ":LOCATE 27.17:INPUT nomm» 


2120 MODE MD >AJ 
2130 INK 0.1 :INK 1,26:BORDER 13 >YD 
2140 CALL &BC06.&C0 >MF 
2150 SAVE nomm». B,Z(COOO, 5(4000 -WF 
2160 FOR 1=1 TO 500:NEXT I >Tg 
2170 CALL S(BCû6,5(40:ERASE kr»;GOTO 520 >EB 


2180 ■ CHARGER ***♦#♦♦*■*■1^* >YD 

2190 PRINT CHR»(7):LOCATE 27,17;PRINT "0/N":LOCATE 30.1 >RF 
7:INPUT nomm» 

2200 IF nomffl»="n" OR nomra»=”N" THEN LOCATE 27.17:PRINT >FH 
” "-.GOTO 940 ELSE PRINT CHR»(7) :LQCATE 27,17: 

PRINT " '":LOCATE 27,17:INFUT nomm» 


2210 MODE MD: INK 0,1 ;INK; 1.26:BORDER 13 /FC 

2220 CALL S(BC06,S(C0 >ME 

2230 LOAD nomm» >BK 

2240 CALL 5(BB18: CALL 5(BC06,5(40 >WG 

2250 ERASE kr»:GOTO 520 '1860 >RB 

2260 CLS >ZK 

2270 '«♦*♦♦#♦♦♦♦*♦****♦♦*♦♦♦**♦*** EFFACER **#♦♦♦♦♦♦*** >YD 
#♦***«♦♦»*»**♦«*♦*♦**♦*♦ 

2280 CALL 5(BC06,5(C0 :^MA 

2290 iST:LOCATE 5.13;PRINT 'EFFACER";FOR M=1 70 1000:NE >EZ 
XT M 

2300 MODE MD:INk; 0,1 :INI<;: 1,26;BORDER 13 >FC 

2310 CALL 5(BC40 >TJ 

2320 GOTO 1910 >MF 

2330 '♦***♦♦♦* QUITTE ****♦«*♦ >YA 

2340 LOCATE 27,17;INPUT "Voulez-vous quitter (0/N)'';0» >HX 
2350 IF 0»="0" OR G»="o" THEN CLS;NEW ELSE GOTO 2360 >TX 
2360 LOCATE 27,17;PRINT " >ED 

":GOTO 940 


• 2370 FIN ********** >YE# 



1 ' *** ELARGIE ♦** 

2 'SAVE "1".B.40700.2048 
5 SYMBOL AFTER 0 
10 FOR i=40700 TO 42748 
20 READ a»;a=VAL("5(“+a») 

30 POKE i.a:NEXT i 
40 DATA FF,C3,C3,C3,.C3.C3,C3.FF 
50 DATA FF.Cû,CO.CO.CÛ,CO,CO,CO 
60 DATA 18,18,18,18,18,18,18,FF 


• 

70 DATA Oo.Oo.V3.Uo.O j, 03,03.rF 
30 DATA OC.18.30.7E,OC,18.30.00 
90 DATA FF.C3,E7,DB.DB.E7.C3.FF 
100 DATA 00.01,03,06,CC.78,30.00 
110 DATA 3C,66,C3,C3.FF.24.E7,00 
120 DATA 00,00,30,60,FF,60,30,00 
130 DATA OO,0O,OC,06.FF.06,OC.OO 
140 DATA 18,18,1B,18.DB,7E,3C,18 
150 DATA 1B,3C,7E.DB,18,1B,18,18 
160 DATA 1B,5A,3C,99,DB,7E,3C,1B 
170 DATA 00,03,33.63,FE,60.30,00 
180 DATA 3C,66,FF,DB,DB,F,66,3C 
190 DATA 3C,66,C3,DB.DB,C3,66,3C 
200 DATA FF,C3.,C3,FF,C3,C3,C3.F 
210 DATA 3C.7E,DB.DB.DF,C3,66,3C 
220 DATA 3C,66,C3,DF,DB,DB,7E,3C 


• 

230 DATA 3C.66,C3.FB,DB,DB,7E.3C 
240 DATA 3C,7E.DB,DB.FB.C3,66,3C 
250 DATA 00.01,33.1E.CE.7B,31.00 
26(1 DATA 7E,6è.66,6fa,66,66,6û,E7 
270 DATA 03.03.03, FF, 03.03,03,00 
280 DATA FF,66.3C,1B,18,3C.66.FF 
290 DATA 18il8,3C,3C.X.3C,ia,18 
300 DATA 3C,66,66,30.18, CtO, 18,00 
310 DATA 3C,66,C3,FF,C3,C3.66,3C 
320 DATA FF,DB,DB,DB,FB,C3,C3,FF 
330 DATA FF,C3,C3,FB,DB,DB,DB,F 
340 DATA FF,C3,C3.DF,DB,DB,DB,F 
350 DATA FF.DB,DB,DB,DF,C3.C3,FF 
360 DATA 00,00,00,00,00,00,00,00 
370 DATA 18.18,18,18,18,00,18,00 
380 DATA 6C,6C,6C, 00,00,00,00,00 


390 DATA 6C.6C,FE,6l.FE. 6C,6C,00 
400 DATA 18,3E,5B.3C,1A,7C,18.00 
410 DATA 00,C6,CC.1B,30.66,C6.00 
420 DATA 38,6C.3B.76,DC,CC,76,00 
430 DATA 18.18,30,00,00,00,00,00 
440 DATA OC.18,30,30,30,18,OC,00 
450 DATA 3O.18,OC,0C,OC,18,3O,0(i 
460 DATA 00,06,3E,1C,1C.3E,OB.OO 
470 DATA 00,18.18,7E,18,18,00.00 
480 DATA 00,0(i,00,00,00,18,18,30 
490 DATA 00,00,00,7E,00,ÛO,00,00 
500 DATA 00,00,00,00,00,18,18.00 
510 DATA 06,OC,18,30,60.CO,30,00 
520 DATA 7C,C6,CE,D6,E6.C6,7C,00 
530 DATA 18,38,18,18,18,18,3C,00 
540 DATA 7C,C6,06,7C,CO,C6,FE,00 


CPC n°36- Juillet/Août 1988 


91 












550 DATA 7C,C6,06,3C,(W>,:6,7C,00 
560 DATA 1C,3C,6C,CC,FE,OC,OC,00 
570 DATA FC,C0,C0,FC,O6,C6,7C,0O 
580 DATA 7C,C6,C0,FC,C6,C6,7C,00 
590 DATA FE,C6,06,18,38,30,30,00 
600 DATA 78,86,C6,7C,C6,C6,7C,00l 
610 DATA 78,86,86,7E,06,86,78,00 
620 DATA 00,00,18,18,00,18,18,00 
630 DATA 00,00,18,10,00,18,18,30 
640 DATA 08,18,30,60,30,18,08,00 
650 DATA 00,00,7E,00,00,7E,00,00 
660 DATA 60,30,18,08,18,30,60,00 
670 DATA 78,86,06,18,30,00,30,00 
682.DATA 78,86,DE,D6,DE,80,78,00 
690 DATA 78,86,86,FE, 86,86,86,00 
700 DATA F8,86,86,F8,86,86,F8,00 
710 DATA 78,86,80,80,80,86,78,00 
720 DATA F8,86,86,86,86,86,F8,00 
730 DATA FE,80,80,F8,80,80,FE,00 
740 DATA FE,80,80,F8,80,80,80,00 
750 DATA 7E,80,80,8E,86,86,7E,00 
760 DATA 86,86,86,FE,86,86,86,00 
770 DATA 7E,18,1S,18,1B,18,7E,00 
780 DATA 3E,08,08,OC,88,88,78,00 
790 DATA 86,88,F8,F8,88,86,86,00 
800 DATA 80,80,80,80,80,80,FE,00 
810 DATA 86,EE,FE,D6,C6,86,86,00 
820 DATA 86,E6,F6,DE,8E,86,86,00 
830 DATA 78,86,86,86,86,86,78,00 
840 DATA F8,86,86,F8,80,80,80,00 
850 DATA 78,86,86,86,DA,8C,76,00 
860 DATA F8,86,86,F8,D8,8C,C6,00 
870 DATA 78,86,80,78,06,86,78,00 
880 DATA TE,18,18,18,18,18,18,00 
890 DATA 86,86,86,86,86,86,78,00 
900 DATA 86,86,86,68,68,38,10,00 
910 DATA 86,86,D6,D6,D6,FE,68,00 
950 DATA 86,68,38,38,68,86,86,00 
930 DATA 66,66,66,38,18,18,18,00 
940 DATA FE,06,08,18,30,60,FE,00 
950 DATA 38,30,30,30,30,30,38,00 
960 DATA 80,60,30,18,08,06,02,00 
970 DATA 38,08,08,08,08,08,38,00 
980 DATA 18,3C,7E,18,1B,18,18,00 
990 DATA 00,00,00,00,00,OOjOO,F 
1000 DATA 30,18,08,00,00,00,00,00 
1010 DATA 00,00,78,06,7E,86,7E,00 
1020 DATA 80,80,F8,86,C6,86,F8,00 
1030 DATA 00,00,78,80,80,80,78,00 
1040 DATA 06,06,7E,86,86,86,7E,00 
1050 DATA 00,00,78,86,FE,80,78,00! 
1060 DATA 3C,66,60,FB,60,60,60,00 ' 
1070 DATA 00,00,78,86,86,7E,06,F8 
1080 DATA 80,80,FC,C6,C6,C6,86,00 
1090 DATA 18,00,38,18,18,18,38,00 
1100 DATA 06,00,06,06,06,86,86,78 
1110 DATA 80,80,88,D8,F8,88,86,00 
1120 DATA 38,18,18,18,18,18,18,00 
1130 DATA 00,00,6C,FE,D6,D6,D6,00 


1140 DATA OO,0O.F8.86,86,86,86,00 
1150 DATA 00,00.78,86,86,86,78,00 
1160 DATA 00,00,FC,86,C6,F8,C0,C0 
1170 DATA 00.00,7E,C6,C6,7E,06,07 
1180 DATA 00,00,BC,E6,8Û,80,80,00 
1190 DATA 00,00,78.EO, 78,OE,FC,00 
1200 DATA 30,30,FE,30,30,30,1E,00 
1210 DATA 00.00,86,86,86,86,78,00 
1220 DATA 00,00,86,86,68,38,10,00 
1230 DATA (X\00,D6,D6.D6.FE,6C,00 
1240 DATA 00,00,86,68,38,68,86,00 
1250 DATA 00,00,C6,C6,C6,7E,06,FC 
1260 DATA 00,00,FE,18,38,70,FE.00 
1270 DATA 0E,18,18,70,18,1S,0E,00 
1280 DATA 18,18,18,00,18,18,18,00 
129C DATA 70,18.18,08,18,18,70,00 
1300 DATA 76,DC,00,00,00,Oû,'00,00 
1310 DATA 88,33,88,33,88,33,88,33 
1320 DATA 00,00,00,00,00,00,00,00 
1330 DATA FO.FO,FO,FO,00,00,00,00 
1340 DATA OF.OF,OF,OF,00,00,00,00 
1350 DATA FF,FF,FF,FF,00,00,00,00 
1360 DATA Oû,00,00,00,FO,FO,FO,FO 
1370 DATA FO,FO,FO,FO,FO,FO,FO,FO 
1380 DATA OF,OF.OF.OF,FO,FO,FO,FÛ 
1390 DATA FF,FF,FF,FF,FO,FO.FO,FO 
1400 DATA ÜO.OO.OO,OO.OF,OF,OF.OF 
1410 DATA FO.FO,FO,Fô,OF,OF,OF,OF 
1420 DATA OF,OF,OF,OF,OF,OF,OF,OF 
1430 DATA FF,FF,FF,FF.OF,OF,OF.OF 
1440 DATA 00,00,00,00,FF.FF,FF,FF 
1450 DATA FO,FO.FO,FO.FF.FF.FF,FF 
1460 DATA OF,OF,OF,OF.FF,FF,FF,FF 
1470 DATA FF.FF,FF,FF,FF,FF.FF.FF 
1480 DATA 00,00,00,18,18,00,00,00 
1490 DATA 18,18,18,18,18.00,00.00 
1500 DATA 00,00,00,1F,1F,00,00,00 
1510 DATA 18,13,18,1F,«)F,00,00,00 
1520 DATA 00,00,00.18,18,18.18.18 
1530 DATA 18,18,18.18,18,18,18,18 
1540 DATA 00,00,00,0F,IF,18,18.18 
1550 DATA 18,18,18,1F,1F,18,18,18 
1560 DATA 0Û,00,00,FB,FB,00,00,00 
1570 DATA 18,18,18.F8,F0.00.00.00 
1580 DATA 00.00,00,FF,FF,00,00,00 
1590 DATA 18,1B,18,FF,FF,00,00,00 
1600 DATA 00,00,00,FO,F8,18,18.18 
1610 DATA 18,18,18,F8,F8,18,18,13 
1620 DATA 00,00.00,FF,FF,18,18,18 
1630 DATA 18,18.18,FF.FF.18.18,13 
1640 DATA 10,38,68,86,00,00.00,00 
1650 DATA 08.18,30,00,00,00,00,00 
1660 DATA 66,66.00,00,00,00,00,00 
1670 DATA 78,86,80,FO,80,86,FE,00 
1680 DATA 7C.82,BA,A2,BA,52,7C,00 
1690 DATA 7E,F4,F4,74,34,34,34,00 
1700 DATA 1E,30,38,6C.38,18,FÛ,00 
1710 DATA 18.18,08,00,00,00,00,00 
1720 DATA 40',C0.44,4C,54,1E,04,00 


1730 DATA 40,80,48,52,44,08,1E,00 
1740 DATA EO,10,62,16,EA,0F,02,00 
1750 DATA 00,1B,1B,7E,18,18,7E,Û0 
1760 DATA 18,ia,00,7E,00,18,IB,00 
1770 DATA 00,00,00,78.06,06,00,00 
1780 DATA 18,00,18,30,66,66,38,00 
1790 DATA 18,00.18,18,18,18,18,00 
1800 DATA 00,00,73,DE,CC,DE,73,00 
1810 DATA 78,86,86,FC,86,86,F3,80 
1820 DATA 00,66,66,38,66,66,38,00 
1830 DATA 38,60,60,38,66,66,38.00 
1840 DATA 00,00,lE,30,78,30,lE,00 
1850 DATA 38.68.86,FE,86,68,38,00 
1860 DATA 00,80,60,30,38,68,86,00 
1870 DATA 00,00,66,66,66.78.60,60 
1880 DATA 00,00,'X,FE, 68,68,68,00 
1390 DATA 00,ÛO,00,7E,DB,D8.70,00 
1900 DATA 03,06,<j8,38,66,38,60,80 
1910 DATA 03.06,08,66,66,38,60,80 
1920 DATA 00,E6,38,18.38,68,87,00 
1930 DATA 00,00.66,83.DB,DB,7E,00 
1940 DATA FE,86,60,30,60,86,FE,00 
1950 DATA 00,78,86,86,86,68,EE,00 
1960 DATA 18,30,60,80,80,00,00,00 
1970 DATA 18,08,06,03,01,00,00.00 
1980 DATA 00,00,00,01,03,06,08,18 
1990 DATA 00,00,00,80,80,60,30.18 
2000 DATA 18,38,66,83,81,00,00.00 
2010 DATA 18,08.06,03,03,06,X, 18 
2020 DATA 00,00,00,81,83,66,38.18 
2030 DATA 18,30,60,80,80,60.30,18 
2040 DATA 18,30,60,81,83,06,08.18 
2050 DATA 18,08,06,83,81.60,30,18 
2060 DATA 18,38,66,83,83,66,38,18 
2070 DATA 83,E7,7E,38,3C,7E,E7,83 
2080 DATA 03,07,OE,18,38,70,80,80 
2090 DATA 80,80,70,38,18,OE,07.03 
2100 DATA 88,88,33,33,88,88,33.33 
2110 DATA AA,55,AA,55,AA.55,AA,55 
2120 DATA FF,FF,00,00,00,00,00,00 
2130 DATA 03,03,03,03,03,03,03,03 
2140 DATA OÛ,()0,00,00.00,00,FF,FF 
2150 DATA 80,80,80.80,80,80,80.80 
2160 DATA FF,FE,F8,F8,F0.E0,80,B0 
2170 DATA FF,7F,3F,lF,Cf,07,03,01 
2180 DATA 01,03,07,0F,1F,3F,7F,FF 
2190 DATA 80,80,E0,F0,FS.F8,FE,FF 
2200 DATA AA,55,AA,55,00,00,00,00 
2210 DATA OA,05,OA,05,OA,05.OA,05 
2220 DATA 00,00,00,00,AA,55,AA,55 
2230 DATA A0.50.A0.50,AO,50,AO,50 
2240 DATA AA,54,A8,5Û,AO,40,80,00 
2250 DATA AA,55,2A,15,0A,05,02,01 
2260 DATA 01,02,05,OA,15,2A,55.AA 
2270 DATA 00,80,40,AO,50,AS,54,AA 
2280 DATA 7E,FF,99,F,BD,83,FF,7E 
2290 DATA 7E,FF,99,FF,C3,BD,FF,7E 
2300 DATA 38,38,FE,FE,FE,10,38,00 
2310 DATA 10,38,78.FE,78,38,10,00 


2320 DATA 6C,FE,FE,FE,78,38,10,00 
2330 DATA 10,38,78,FE,FE,10,38,00 
2340 DATA 00,38,66,83,83,66,38,00 
2350 DATA 00,3C,7E,FF,FF,7E,3C,00 
2360 DATA 00,7E,66,66,66,66,7E,00 
2370 DATA 00,7E,7E,7E,7E,7E,7E,00 
2380 DATA 0F,07,0D,78.CC,CC,CC,7B 
2390 DATA 38,66,66,66,38,18,TE,18 
2400 DATA X,0C,X,X,0C,3C,78,38 
2410 DATA 18,1C,1E,1B,1B,78,F8,70 
2420 DATA 99,5A,24,C3,C3,24,5A,99 
2430 DATA 10,38,38,38,38,38,78,D6 
2440 DATA 18,3C,7E,FF,18,18,18,1B 
2450 DATA 18,18,1B,1B,FF,7E,3C,18 
2460 DATA 10,30,70,FF,FF,70,30,10 
2470 DATA 0B,0C,0E,FF,FF,0E,X,O8 
2480 DATA 00,00,18,3C,7E,FF,FF,00 
2490 DATA 00,OO,FF,FF,7E,38,18,00 
2500 DATA 80,EO,FB,FE,F8,EO,80,00 
2510 DATA 02,0E,3E,FE,3E,0E,O2,0O 
2520 DATA 38,33,10,FE,10,28,28,68 
2530 DATA 38,38,10,FE,10,28,44,82 
2540 DATA 38,38,12,78,90,28,24,22 
2550 DATA 38,38,90,78,12,28,48,88 
2560 DATA 00,3C,18,38,38,38,18,00 
2570 DATA 3C,FF,FF.18,X, 18,30,18 
2580 DATA 18,3C,7E,18,18,7E,3C,1B 
2590 DATA 00,24,66,FF,FF,66,24,00 
2600 DATA 00,00,00,00,00,00,00,00* 


1 ' DATA »«■* 

2 'SAVE "2*,8,40700,2048 
5 SYMBOL ARER 0 

10 FOR i=40700 TO 42748 
20 READ â$:a=VAL("l("+a$) 

30 POKE i,a:NEXT i 
40 DATA FF,C3,C3,C3,C3,C3,C3,FF 
50 DATA FF,CO,CO,CO,CO,CO,CO,CO 
60 DATA 18,18,18,18,18,18,1B,FF 
70 DATA 03,03,03,03,03,03,03,FF 
80 DATA 08,1B,30,7E,X, 18,30,00 
90 DATA FF,C3,E7,DB,DB,E7,C3,FF 
100 DATA 00,01,03,06,88,78,30,00 
110 DATA 3C,66,C3,C3,FF,24,E7,00 
120 DATA 00,00,30,60,FF,60,30,00 
130 DATA 00,00,08,06,F,06,X,00 
140 DATA 18,1B,18,18,DB,7E,3C,18 
150 DATA 18,38,7E,DB,18,18,18,18 
160 DATA 18,5A,38,99,DB,TE,38,18 
170 DATA 00,03,33,63,FE,60,30,00 
180 DATA 3C,66,FF,DB,DB,FF,66,3C 
190 DATA 3C,66,C3,DB,DB,C3,66,3C 
200 DATA FF,C3,C3,FF,C3,C3,C3,FF 
210 DATA 3C,7E,DB,DB,DF,C3,66,3C 
220 DATA 3C,66,C3,DF,DB,DB,7E,3C 
230 DATA 3C,66,C3,FB,DB,DB,7E,3C 
240 DATA 3C,7E,DB,DB,FB,C3,66,38 


92 


CPC n'" 36- Juillet/Août I98< 














250 DATA 00,01,33.1E,CE,7B,31,Û0 
260 DATA 7Ei66,66,66,66,6à,à6)E7 
270 DATA 03,03,03,FF,03,03,03, 00 
280 DATA F,66,3C,18,18,3C,66,FF 
290 DATA 18,lB,3C,3C,3C,3C,13.ia 
300 DATA 30,66,66,30,18,00,18,00 
310'DATA 3C,6â,C3,FF,C3,C3,66,3C 
320 DATA F,DB,DB,DB,FB,C3,C:3,FF 
330 DATA FF,C3,C3,FB,DB,DB,DB,FF 
340 DATA FF,C3,C3,DF,DB,DB,BB.FF 
350 DATA FF,DB,DB,DB,DF,C3,C3,F 
360 DATA 00,00,00.00,00,00,00,00 
370 DATA 18,18,18,08,08, 'OO, 08. 00 
380 DATA 6C. 60,24.00,00,00, 00,00 
390 DATA 24,24,7E,24,7E,24,24.00 
400 DATA 10.7E,50.7E.16.7E.10.00 
410 DATA 00,42,44.08,10.32.62.00 
420 DATA 7C,64.7C.CE,C8.C8,F6,00 
430 DATA 18,18,08,00,00.00,00,00 
440 DATA 08,10,30,30,30,10,08,00 
450 DATA 20.10,18.18.18,10,20.00 
460 DATA 10,54,38,FE,38.54,10,00 
470 DATA OO.IO.IO.TC.IO.IO.'OO.CO 
480 DATA 00,00,00,00,00,18,18,08 
490 DATA 00,00,00,78.00,00,00,00 
500 DATA 00,00,00,00,00,18.18,00 
510 DATA 02,06,08,18,30,40.30,00 
520 DATA FE.82,B2,82,82,82.FE,00 
530 DATA 10,10.10,18.18,13.18,00 
540 DATA FE,82,06,06,FE,8Û,FE.OO 
550 DATA FE,82.02.3E.06,a6.FE,00 
560 DATA B0,80,88.88,FE,08,08,00 
570 DATA FE.80.FE,02,û6.a6,FE,û0 
580 DATA FE,80,FE,B2,82,82,FE,0C 
590 DATA F8,84,04.1E,Û8,08.08,« 
600 DATA FE,82,FE,B2,82.82.FE,00 
610 DATA FE.82.B6.86,FE.02.FE.Û0 
620 DATA 00,00.18,18,00,18,18,00 
630 DATA 00.00,18,18,00.18,16.08 
640 DATA 08,10,20,40.20,10,08,00 
650 DATA 00.00.78,00.78,00,00,00 
660 DATA 20,10,08,04,08.10,20,00 
670 DATA FE,82.82,1E.13,00,18.00 
680 DATA FE,82,9A.DA.DE.80,F8,00 
690 DATA FE.82,82,FE,82,82,82,00 
700 DATA F8,44,44, TE,62,62,FE. 00 
710 DATA FE,82,80,80.80,82. FE,00 
720 DATA FE,42,42,62,62.62,FE, 00 
730 DATA FE,42,40,78.60.62,FE, 00 
740 DATA FE,42,40,78.60.60,FO,00 
750 DATA FE,32,80,8E,82,82,FE.00 
760 DATA 82,82,82,FE,82,82,82, 00 
770 DATA 78,10,10,18,18,18,78,00 
780 DATA lE,04,04,Oe,88.8C,F8.00 
790 DATA 88,88.88,F8,84,84,86,00 
800 DATA 80,80,80,80,80,80,FE. 00 
810 DATA FE.92,92,D2,D2.82,82,00 
820 DATA F2,92,92,DA,8A,8A,8E,00 
830 DATA FE,86,86,86.32.a2,FE,00 


840 DATA FE,42.42,7E,60,60,FO. 00 
850 DATA FE.82.82,DA.CE,E€.F6,00 
860 DATA FE,42.42,7E.64,66.F2,00 
870 DATA FE,C2,80,FE.02,82,FE,00 
880 DATA FE,10.10,18,18.18,18,00 
890 DATA 82,82,82,82,82.82,FE,00 
900 DATA 86,48,48,48.68.38.10.00 
910 DATA 86,86,86,'96,92,92.FE,00 
920 DATA E6,26,26,FE,86,88,8E,00 
930 DATA 82,82.82,FE,10.10,38.00 
940 DATA FE,86.1E,10,FO,B2.FE.OO 
950 DATA 38,20,20,30.30.30,38.00 
960 DATA 80,60,30,18,08,04,02,00 
970 DATA 38,04,04,08,08,08,38,00 
980 DATA 10,38,78,54,10,10,10,00 
990 DATA 00,00,00,00,00,00,00,FF 
1000 DATA 18,18,10,00,00,00,00,00 
1010 DATA 00,00,78,04,F8,84,FE,00 
1020 DATA 80,80,FE,82,82,82,FE,00 
1030 DATA 00,00,FE,B2,80,82,FE,00 
1040 DATA 02,02,FE,B2,82,E2,FE,00 
1050 DATA 00,00,FE,B2,FE,80,FE,00 
1060 DATA 38,20,20,78,20,30,30,30 
1070 DATA 00,00,FE,86,86,FE,02,TE 
1080 DATA 80,80,FE,82,82,e2,82,00 
1090 DATA 10,00,10,10,-lB, 18,18,00 
1100 DATA 02,00,02,02,06,06,86,FE 
1110 DATA 80,80,88,88,FB,88,8E,00 

1120 DATA 30,10,10,18,18,18,18,00 
1130 DATA 00,00,FE,92,D2,D2,82,00 
1140 DATA 00,00,FE,42,62,62,62,00 
1150 DATA 00,00,FE,B2,e2,e2,FE,00 
1160 DATA 00,00,FE,82,82,FE,80,EO 
1170 DATA 00,00,F8,84,84,FE,06,06 
1180 DATA 00,00,FE,42,60,60,60,00 
1190 DATA 00,00,FE,80,FE,06,FE,00 
1200 DATA 20,20,FE,20,30,32,3E,00 
1210 DATA 00,00,B2,82,E2,82,FE,00 
1220 DATA 00,00,82,82,EE,28,38,00 
1230 DATA 00,00,82,02,1)2,92,FE,00 
1240 DATA 00,00,EE,2B,7B,68,EE,00 
1250 DATA 00,00,86,86,86,FE,02,7E 
1260 DATA 00,00,7E,02,7E,60,FE,00 
1270 DATA 08,10,10,20,10,10,08,00 
1280 DATA 18,18,18,00,18,18,^8,00 
1290 DATA 20,10,10,08,10,10,20,00 
1300 DATA 28,34,00,00,00,00,00,00 
1310 DATA 88,33,88,33,88,33,88,33 
1320 DATA 00,00,00,00,00,00,00,00 
1330 DATA FO,F0,FO,F0,OO,0O,Ô0,0O 
1340 DATA OF,OF,0F,OF,OO,O0,0O,OO 
1350 DATA F,FF,FF,F,00,00,ÔO,00 
1360 DATA 00,00,00,00,FO,FO,PO,FO 
1370 DATA F0,F0,F0,F0,F0,F0,F0,F0 
1380 DATA OF,OF,OF,OF,FO,FO,FO,FO 
1390 DATA F,F,F,F,F0,F0,F0,F0 
1400 DATA 00,00,00,00,0F,0F,0F,0F 
1410 DATA FO,FO,FO,FO,OF,OF,GF,OF 
1420 DATA OF,OF,OF,OF,OF,OF,OF,OF 


1430 DATA FF,FF,FF,FF,ÛF,OF,OF,OF 
1440 DATA 00,00,00,00,F,FF,F,F 
1450 DATA F0,F0,F0,F0,FF,FF,F,FF 
1460 DATA 0F,0F,0F,0F,FF,FF,F,F 
1470 DATA F,FF,F,FF,F,F,F,FF 
1480 DATA 00,00,00,18,18,00,00,00 
1490 DATA 18,18,18,18,18,00,00,00 
1500 DATA 00,00,00,1F,1F,00,00,00 
1510 DATA 18,18,1B,1F,OF,00,00,00 
1520 DATA 00,00,00,18,18,18,18,18 
1530 DATA 18,18,18,18,18,18,18,18 
1540 DATA 00,00,00,0F,IF,18,18,18 
1550 DATA 18,18,18,1F,1F,1B,18,18 
1560 DATA 00,00,00,F8,FB,00,00,00 
1570 DATA 18,18,13,FB,FO,00,00,00 
1580 DATA 00,00,00,FF,FF,00,00,00 
1590 DATA 18,18,18,FF,FF,00,00,00 
1600 DATA 00,00,00,FO,F8,18,18,18 
1610 DATA ia,18,18,F8,F8,lB,lB,13 
1620 DATA 00,00,00,FF,FF,18,18,18 
163Ci DATA 18,18,18,FF,FF,18,18,18 
1640 DATA 10.3B,6C,C6,00,00,00,00 
1650 DATA OC. 18,30,00,00,00,'00,00 
1660 DATA 66,66,00,00,00,(00,00,00 
1670 DATA 3C,40,40,FO,60,62,FE,00 
1680 DATA 7C,82,BA,A2,BA,82,7C,00 
1690 DATA 7E,F4,F4,74,34,34,34,00 
1700 DATA 1E,30,38,6C,38,18,F0.00 
1710 DATA 13,18.OC,00,00,00,00,00 
1720 DATA 40,40,50,54,54,1E,04,00 
1730 DATA 40,40,5E,46,5E,10,1E,00 
1740 DATA E0.20.E8,2B,EA,OF,02,00 
1750 DATA 00.18,18.7E,18,1B,7E,00 
1760 DATA 18,18,00,7E,00,18,18,00 
1770 DATA 00,00,00,7E,06,06,00.00 
1780 DATA 18,00,18,30,66,66,3C.00 
1790 DATA 18,00,18,18,18,18,18,00 
1800 DATA 00,00,73,DE,CC,DE,73,00 
1810 DATA 7C.C6,C6,FC,C6,C6,FB,C0 
1820 DATA 00,66,66,3C,66,66,3C,00 
1830 DATA 3C,60,60,3C,66,66,3C,00 
1840 DATA 00,00,1E,30,7C,30,1E,00 
1850 DATA 3B,6C,C6,FE,C6,6C,38,00 
1860 DATA 00,CO,6Û,30,38,6C,C6,00 
1870 DATA 00,00,66,66,66,7C,60,60 
1880 DATA 00,00,00,FE,6C,6C,6C,00 
1890 DATA 00,00,00,7E,D8,D8.70,00 
1900 DATA 03,06,OC,3C,66,3C,60,CO 
1910 DATA 03,06,OC,66,66,3C.60,CO 
1920 DATA 00,E6,3C,1B,38,6C.C7,00 
1930 DATA 00,0O,66,C3,DB,DB,7E.00 
1940 DATA FE,C6,60,30,60,C6,FE,00 
1950 DATA 00.7C,C6,C6.C6,6C,EE,00 
1960 DATA 18,30,60,CO,80,00,00,00 
1970 DATA 18,OC,06,03,01,00,00,00 
1980 DATA 00,00,00,01,03,06,X,18 
1990 DATA 00,00,OÛ,80,CO,60,30,1B 
2000 DATA 18,3C,66,C3,81,00,00,00 
2010 DATA 18,ÛC,06,03,03,06,OC,18 


2020 DATA 00,00,00,81,C3,66,3C,18 
2030 DATA 18,30,60,CO,CO,60,30,18 
2040 DATA 18,30,60,C1,B3,06,0C,18 
2050 DATA 18,0C,06,83,C1,60,30,18 
2060 DATA 18,3C,66,C3,C3,66,3C,1B 
2070 DATA C3,E7,7E,3C,3C,7E,E7,C3 
2080 DATA 03,07,0E,1C,38,70,E0,C0 
2090 DATA CO,EO,70,38,1C,0E,07,03 
2100 DATA CC,CC,33,33,CC,CC,33,33 
2110 DATA AA,55,AA,55,AA,55,AA,55 
2120 DATA FF,FF,00,00,00,00,ÛO,00 
2130 DATA 03,03,03,03,03,03,03,03 
2140 DATA CiO,00,00,00,00,00,FF,FF 
2150 DATA CO,CO,CO,CO,CO,CO,CO,CO 
2160 DATA FF,FE,FC,F8,F0,E0,C0,80 
2170 DATA FF,7F,3F,1F,OF,Û7,03,01 
2180 DATA 01,03,07,0F,1F,3F,7F,FF 
2190 DATA 80,C0,E0,Fû,FB,FC,FE,FF 
2200 DATA'AA,55,AA,55,00,00,00,00 
2210 DATA 0A,05,OA,O5,0A,05,OA,05 
2220 DATA 00,00,00,00,AA,55,AA,55 
2230 DATA Aû,50,AO.50,AO,50,AO,50 
2240 DATA AA,54,AS,50,AO,40,80,00 
2250 DATA AA,55,2A,15,0A,O5,O2,01 
2260 DATA 01,02,05,OA,15,2A,55,AA 
2270 DATA 00,80,40,A0,50,A8.54,AA 
2280 DATA 7E,FF,99,FF,BD,C3,F,7E 
2290 DATA 7E,FF,99,FF,C3,BD,FF.7E 
2300 DATA 38,38,FE,FE,FE,10,38,00 
2310 DATA 10,38,7C,FE,7C,3B,10.00 
2320 DATA 6C,FE,FE,FE,7C,38,10,00 
2330 DATA 10,38,7C,FE,FE,10,38,00 
2340 DATA 00,3C,66,C3,C3,66,3C,00 
2350 DATA 00,3C,7E,FF,FF,7E,3C,00 
2360 DATA 00,7E,66,66,66,66,7E.00 
2370 DATA 00,7E,7E,7E,7E,7E,7E,00 
2380 DATA 0F,07,0D,78,CC,CC,CC,78 
2390 DATA 3C,66.66,66,3C,18,7E,18 
2400 DATA 0C,0C,0C,0C,0C,3C.7C,3B 
2410 DATA 18.1C,1E,1B,18,7S,F8.70 
2420 DATA 99,5A,24,C3,C3,24,5A,99 
2430 DATA 10,38,38,38,38,38,7C,D6 
2440 DATA 1B,3C,7E,FF,18,16,1B,18 
2450 DATA 13,18,1S,18,FF,7E,3C,1B 
2460 DATA 10,30,70,FF,FF,7Û,30,10 
2470 DATA 08,OC.OE,FF,FF,OE,OC,08 
2480 DATA 00,00,18,3C,7E,FF,FF,00 
2490 DATA 00,00,FF,FF,7E,3C,18,00 
2500 DATA 80,E0,F8,FE,FB,E0.80,00 
2510 DATA 02,ÛE,3E,FE,3E.C£,02,00 
2520 DATA 38,38,92,7C,10,38,28,6C 
2530 DATA 38,38,10,FE,10,3B,6C,C6 
2540 DATA 38,38,12,7C,90,38,2C,26 
2550 DATA 38,38,90,7C,12,38,68,C8 
2560 DATA 00,3C,18,3C,3C,3C,18,00 
2570 DATA 3C,FF,FF,18,0C,18,30,18 
2580 DATA 10,38,7C,10,10,7C,38,10 
2590 DATA 00,24,66,FF,FF,66,24,00 
2600 DATA 00,00,00,00,00,00,00,00» 


CPC n" 36- Juillet/Août 1988 


93